高速公路:接住发送邮件

2024-05-17 11:35:45 发布

您现在位置:Python中文网/ 问答频道 /正文

如何捕获发送消息错误?没有异常传播。当服务器关闭(半开放连接)时,我想捕捉客户机代码中的错误。如果运行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高速公路


Tags: 代码self程序服务器消息客户机def错误
1条回答
网友
1楼 · 发布于 2024-05-17 11:35:45

是的,对于快速检测丢失的连接有一个更好的解决方案:websocketping/pong。这是内置在WebSocket协议中的。在

AutobahnPython支持自动WebSocket Ping/Pong,主要用于准确的这种情况(快速连接丢失检测和连接保持活动)。在

您可以使用以下参数激活它:

  • autoPingInterval
  • autoPingTimeout
  • autoPingSize

可以为serversclients设置。在

你需要一个最新的AutobahnPython版本(我想是0.9.4+)。你的(0.6.5)没有这个功能。在

相关问题 更多 >