繁体   English   中英

通过websocket接收来自ArrayBuffer的字符串

[英]Read string from ArrayBuffer received via websocket

我正在使用python SimpleWebSocketServer ,修改后的SimpleExample.py和Chrome。

当我从浏览器发送字符串到python时,一切正常,但是当我从python发送字符串到浏览器时,我没有最简单的想法如何将接收到的ArrayBuffer(或Blob,如果配置)转换为javascript字符串。

Python代码:

def handleConnected(self):
    with open("roads.txt") as roadsfile:
        content = "" + roadsfile.read()
        self.sendMessage(content)

浏览器代码:

    function doConnect() {
        websocket = new WebSocket("ws://localhost:8000/");
        websocket.binaryType = 'arraybuffer';
        websocket.onmessage = function(event) { onMessage(event) };
    }

    function onMessage(event) {
        console.log(event.data);
    }

记录的是ArrayBuffer{} ,看起来是空的,我想。

我不知道如何处理这个ArrayBuffer,也不知道如何检查它的有效性。

顺便说一句,来自roads.txt的文件内容是一长串基于文本的浮点数,类似于.csv,所以如果我可以将它们编码为实际的二进制数组,那就更好了!

试试这个 - 回到接收消息作为arraybuffer,并应用这样的东西来创建一个字符串:

function ab2str(buf) {
  return String.fromCharCode.apply(null, new Uint16Array(buf));
}

function onMessage(event) {
    console.log(ab2str(event.data));
}

假设您正在发送utf-8编码的字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM