簡體   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