如何捕获发送消息错误?没有异常传播。当服务器关闭(半开放连接)时,我想捕捉客户机代码中的错误。如果运行websocket守护程序的服务器崩溃、重新启动、失去网络连接closeConnection/ConnectionLost/ConnectionFailed回调不起作用。在
from autobahn.websocket import WebSocketClientProtocol
class ClientProtocol(WebSocketClientProtocol):
def onOpen(self):
def heartbeat():
self.sendMessage("HB")
self.factory.reactor.callLater(1, heartbeat)
# I want to catch a socket error
try:
heartbeat()
except Exception as e:
print e
也许还有比这更好的解决办法。乒乓球?很简单,我无法找到一种方法,我的客户端可以检测到服务器崩溃/重新启动,然后重新连接。在
我用的是0.6.5高速公路
是的,对于快速检测丢失的连接有一个更好的解决方案:websocketping/pong。这是内置在WebSocket协议中的。在
AutobahnPython支持自动WebSocket Ping/Pong,主要用于准确的这种情况(快速连接丢失检测和连接保持活动)。在
您可以使用以下参数激活它:
autoPingInterval
autoPingTimeout
autoPingSize
可以为servers和clients设置。在
你需要一个最新的AutobahnPython版本(我想是0.9.4+)。你的(0.6.5)没有这个功能。在
相关问题 更多 >
编程相关推荐