WebSocket消息中的JavaScript双反斜杠
JavaScript double backslash in WebSocket messages
我正在通过WebSocket向Python应用程序发送二进制数据。这个二进制数据通过调用struct.unpack("BH", data")
来解码,需要一个4字节长的对象。
我目前面临的问题是,所有数据都包含重复的反斜杠,即使在arraybuffer
模式下,因此长度为16字节。我无法检测到变化的大小,因为有数据附加到它的后面(与这个问题无关),即使我可以,我也找不到在Python中去除反斜杠的方法。
数据发送方式:
// 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端,因为我不能真正改变Python应用程序的实现而不破坏基于Python的客户端。
您应该将消息定义为字节而不是字符串:
var buffer = new Int8Array([5,0,0,0])
this.webSocket.send(buffer.buffer)
相关文章:
- JavaScript消息系统加密
- IE中奇怪的JavaScript消息
- 清除来自VBA的Javascript消息框
- 已启用 JavaScript 消息
- asp.net javascript 消息未显示
- 确实存在一种重定向和显示 javascript 消息的方法
- 如何从android webview获取Javascript消息
- 将 JavaScript 消息传递给 CSHARP
- IE8中的Javascript消息超出堆栈空间
- 如何对来自javascript消息的文本进行硬编码
- 将HTML放入自定义javascript消息框中
- 当使用UPDATE PANEL时,应用程序不显示javascript消息
- 如何改变javascript消息框编码器的条件
- 抑制WebBrowser JavaScript消息错误
- 如何在我的webOS应用程序中显示此JavaScript消息
- asp和javascript消息提醒不会;不起作用
- iframe中的Javascript消息
- 返回到视图以及 laravel 中的 javascript 消息
- 使用 JSF 从资源包传递本地化的 JavaScript 消息
- Rails 设置一个 Cookie 以确保只收到一次 Javascript 消息