python websocket客户端连接状态 - 如何更新以获得正确的状态?

Posted

技术标签:

【中文标题】python websocket客户端连接状态 - 如何更新以获得正确的状态?【英文标题】:python websocket client connected status - how to update so I get correct status? 【发布时间】:2015-02-01 03:16:08 【问题描述】:

我可以使用 python websocket 连接到 node.js websocket 服务器。当我询问python websocket客户端是否连接到服务器时,不准确。

会发生什么:

Python 2.7.6 (default, Sep  9 2014, 15:04:36)
>>> import websocket
>>> ws = websocket.WebSocket()
>>> ws.connect("ws://localhost:8081") # my websocket server is running, so all good here.
>>> ws.connected
True      # This is correct. Now I kill the websocker server
>>> ws.connected
True      # this should be false since the server is dead.

ws node.js 模块附带wscat,您可以通过命令wscat -l 8081 运行websocket 服务器。

如何获得指示真正连接/断开状态的准确状态?

【问题讨论】:

【参考方案1】:

.connected 属性不会更新,除非 closeshutdown,... 被调用,或 recv* 接收到空数据。

尝试调用recv(),然后检查.connected属性。

【讨论】:

以上是关于python websocket客户端连接状态 - 如何更新以获得正确的状态?的主要内容,如果未能解决你的问题,请参考以下文章

python 如何建立socket长连接

带有异步计时器的 Python 异步 websocket 客户端

使用python 多进程进行基于websocket 的实时视频流处理

WebSocket 客户端的状态不会因网络丢失而改变

在 Python 中打开一个 websocket 并保持打开状态

Comet 和 Websockets 中的开放连接差异