我正在使用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,所以如果我可以将它们编码为实际的二进制数组,那就更好了!
答案 0 :(得分:0)
试试这个 - 回到接收消息作为arraybuffer,并应用这样的东西来创建一个字符串:
function ab2str(buf) {
return String.fromCharCode.apply(null, new Uint16Array(buf));
}
function onMessage(event) {
console.log(ab2str(event.data));
}
这假设您正在发送utf-8编码的字符串。