Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 龙卷风网袋_Python_Websocket_Tornado - Fatal编程技术网

Python 龙卷风网袋

Python 龙卷风网袋,python,websocket,tornado,Python,Websocket,Tornado,我正在运行一个带有WebSocket处理程序的Python Tornado服务器。 我们注意到,如果我们突然断开客户机的连接(例如断开电缆),服务器就没有断开连接的迹象。未引发on_close事件。 有解决办法吗? 我已经阅读了发送ping的选项,但在联机示例中没有看到任何人使用它,也不确定如何使用它以及它是否能解决此问题。只有在连接关闭时才能触发on_close事件 您可以发送ping并等待on_pong事件 超时通常很难检测到,因为您甚至不会收到插槽已关闭的消息。您可以分享一个示例吗?您得到

我正在运行一个带有WebSocket处理程序的Python Tornado服务器。 我们注意到,如果我们突然断开客户机的连接(例如断开电缆),服务器就没有断开连接的迹象。未引发on_close事件。 有解决办法吗?
我已经阅读了发送ping的选项,但在联机示例中没有看到任何人使用它,也不确定如何使用它以及它是否能解决此问题。

只有在连接关闭时才能触发on_close事件

您可以发送
ping
并等待
on_pong
事件


超时通常很难检测到,因为您甚至不会收到插槽已关闭的消息。

您可以分享一个示例吗?您得到了答案我们实现了ping/pong:
def do\u ping(self):if self.is_active:if not self.received_pong:self.retries+=1 if self.retries==3:logger.info()self.on_close()返回else:logger.info()self.received_pong=False self.ping('data')tornado.ioloop.ioloop.current()。稍后调用(20,self.do_pong)def on_pong(self,data):self.received_pong=True self.retries=0