繁体   English   中英

Python:无法解码来自Websocket的服务器响应

[英]Python: Unable to decode response coming from server over websocket

我的Python脚本创建了一个WebSocket,并能够使用该WebSocket连接到服务器。 服务器在我创建的WebSocket上发送响应,但是WebSocket模块似乎无法对其进行解码。

这是我看到的错误:

-----------------------
Traceback (most recent call last):
  File "test_file.py", line 307, in <module>
    result = ws.recv()
  File "/usr/local/lib/python2.7/dist-packages/websocket/_core.py", line 293, in recv
    opcode, data = self.recv_data()
  File "/usr/local/lib/python2.7/dist-packages/websocket/_core.py", line 310, in recv_data
    opcode, frame = self.recv_data_frame(control_frame)
  File "/usr/local/lib/python2.7/dist-packages/websocket/_core.py", line 334, in recv_data_frame
    return self.cont_frame.extract(frame)
  File "/usr/local/lib/python2.7/dist-packages/websocket/_abnf.py", line 428, in extract
    "cannot decode: " + repr(frame.data))
websocket._exceptions.WebSocketPayloadException: cannot decode: '\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03\x9dUmk\xeb6\x14\xfe+\xc1\x1f\xc7ug\'v\x1c\x17\xc6\xb8t\xa5\x0b\xac\xbdwm\x06\x83\xb9\x08Y>N\xb5kK\x8e$\'\xcdJ\xff\xfbt$;vac0\x87\x18\xe9\xbc<\xe7\xfd\xf8m\x11\x80RR1YAp\xbd\x88>-\x82\x16\xb4\xa6{\xbc\x05\x9f\xf7 \xccW%_\xcf7\xb2m{\xc1\x195\\\x8a\xc0JqMz\'

这是我启动Websocket并侦听服务器响应的一段代码:

ws = websocket.create_connection(full_url, header = header_set)
result = ws.recv()
print result

ws.recv()行中失败。 有任何想法吗?

这似乎是websocket-client版本0.16的已知问题。 尝试将软件包更新为0.34或更高版本,以查看是否可以解决问题。

显然,这是因为websocket-client更改了他们在0.16之后的版本中处理帧验证的方式(虽然不能确切确定是哪个版本,所以请尝试更新到最新版本)。

支持链接: https//github.com/dpallot/simple-websocket-server/issues/24

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM