IOError:无法接收 websocket 消息

Posted

技术标签:

【中文标题】IOError:无法接收 websocket 消息【英文标题】:IOError: unable to receive websocket message 【发布时间】:2014-01-15 15:05:52 【问题描述】:

我正在建立一个python websocket应用程序,我现在拥有的基本代码是这样的

import uwsgi

def application(env, start_response):
    # complete the handshake
    uwsgi.websocket_handshake(env['HTTP_SEC_WEBSOCKET_KEY'], env.get('HTTP_ORIGIN', ''))
    while True:
        msg = uwsgi.websocket_recv()
        uwsgi.websocket_send("Oh!  " + msg)

我使用

运行此代码
uwsgi --http :8080 --http-websockets --wsgi-file server.py

代码正常工作,当我使用浏览器访问此服务器时,我得到了预期的响应。但是即使浏览器显示正确的响应,服务器日志中也会出现如下错误

Traceback (most recent call last):
  File "pingserver.py", line 9, in application
    msg = uwsgi.websocket_recv()
IOError: unable to receive websocket message

关于如何修复此错误的任何想法?我在这里做错了什么?

【问题讨论】:

【参考方案1】:

只有当客户端(浏览器)粗暴地关闭 websocket 连接时,您才会收到该错误。您可以捕获它并毫无问题地从可调用对象中返回

【讨论】:

以上是关于IOError:无法接收 websocket 消息的主要内容,如果未能解决你的问题,请参考以下文章

Websocket保证接收消息完整性

无法从 websocket 消息对象获取 json 值

websocket接收消息再发送会发送两次

SpringBoot实现WebSocket发送接收消息 + Vue实现SocketJs接收发送消息

按接收顺序处理 WebSockets 消息

按接收顺序处理 WebSockets 消息