BSON decode from Blob

BSON decode from Blob

本文关键字:Blob from decode BSON      更新时间:2023-09-26

我使用 Tornado 使用 Javascript 处理客户端应用程序。对于数据交换,请使用BSON。因为龙卷风发送数据使用JSON,所以我写了我的函数通过Websocket发送:

def write_bson(self, message):
    message = BSON.encode(message)
    self.ws_connection.write_message(message, binary=True)

因为浏览器中的"二进制=True"我得到了一个 Blob,但不明白如何对收到的消息执行 BSON 解码。

尝试了以下方法来执行解码,在注释中我指定了输出控制台.log:

    t = new WebSocket(url);
    t.onmessage = function(event) {
        console.log(event.data); // Blob { size: 390, type: "" }
        console.log(BSON.deserialize(event.data)); // Error: corrupt bson message
        var reader = new FileReader();
        reader.onload = function(e) {
             console.log(e.target.result); // ArrayBuffer { byteLength: 390 }
        };
        var data = reader.readAsArrayBuffer(event.data);
        console.log(BSON.deserialize(data)); // Error: corrupt bson message

如何解码BSON?

    var reader    = new FileReader();
    reader.onload  = function() {
        uint8Array  = new Uint8Array(this.result);
        console.log(BSON.deserialize(uint8Array));
    }
    reader.readAsArrayBuffer(event.data);