0
我正在通過WebSocket發送二進制數據給Python應用程序。該二進制數據通過調用struct.unpack("BH", data")
進行解碼,需要一個4字節的字節對象。
我目前面臨的問題是,即使在arraybuffer
模式下,所有數據都包含重複的反斜槓,因此它的長度爲16個字節。我無法檢測到變化的大小,因爲有數據附加到它的後面(與這個問題無關),即使我可以,我也找不到在Python中去除反斜槓的方法。WebSocket消息中的JavaScript雙反斜槓
如何將數據發送:
// this.webSocket.binaryType = "arraybuffer";
var message = "\\x05\\x00\\x00\\x00"; // escaping required
var buffer = new Int8Array(message.length);
for (var i = 0; i < message.length; i++) {
buffer[i] = message.charCodeAt(i);
}
this.webSocket.send(buffer.buffer);
相比較而言,這是怎麼說的Python中定義的數據時的樣子:
b'\x05\x00\x00\x00'
,這是它的外觀作爲接收消息:
b'\\x05\\x00\\x00\\x00'
這個問題的理想解決方案是JavaScript-s因爲我不能在不破壞基於Python的客戶端的情況下真正改變Python應用程序的實現。
是'5'相當於' 「\\ X05」'? – guest271314
不,「\\ x05」是4個字節,但5等於字節'\ x05'。 – Daniel
'「\\ x05」'是什麼格式? – guest271314