【发布时间】:2015-05-21 04:50:38
【问题描述】:
我在解码通过 websockets 从 Chrome (JavaScript) 发送到 python 服务器的数据时遇到了一些问题(使用低级套接字 API)。我已经正确处理了握手,当我使用.send(...) 时,websocket 的readyState 是打开的。我收到字节数据(根据规范),但无论我如何尝试解码它,它都会出现乱码或触发异常。
javascript
var we = new WebSocket(url);
we.send("string data");
蟒蛇
data = socket.recv(1024) # socket from sock.accept(...)
#handle data
我已经尝试过data.decode('utf-8'),因为这似乎是显而易见的解决方案(引发错误)。我试过剥离 \x80 和 \x81(我想 - 我在 StackOverflow 的某个地方读过它),但它仍然会引发错误......
我已经尝试过 base64 解码 - 我在 SO 上的答案中找到了它(但这没有意义,所以......)
我缺少什么吗?
【问题讨论】:
-
您能否发布握手后收到的数据样本?它可能被压缩了。
-
@Blender 它在 UTF8 中是垃圾,但我做了一个十六进制转储,结果为 81:85:86:56:99:b4:ee:33:f5:d8:e9 用于发送的字符串“你好”
-
@Blender 就我而言,它没有使用压缩,因为我在握手响应中拒绝了该扩展。
标签: javascript python python-2.7 websocket