我使用的是gevent-websocket
模块和Bottle
Python框架。在
当客户端关闭浏览器时,此代码
$(window).on('beforeunload', function() { ws.close(); });
帮助正确关闭websocket连接。在
但是,如果客户端的网络连接被中断,则不会向服务器发送“关闭”信息。在
然后,通常,甚至在1分钟后,服务器仍然认为客户端已连接,而websocket在服务器上仍然是打开的。在
问题:如何正确检测websocket是否因为客户端与网络断开而关闭?
Python/Bottle/gevent websocket中是否有websocket KeepAlive特性?
来自Web Socket: cannot detect client connection on internet disconnect的一个答案建议每隔x秒使用一个心跳/ping包来告诉服务器“我还活着”。另一个答案是建议使用setKeepAlive(true).
特性。此功能是否在gevent-websocket
中可用?在
示例服务器代码,taken from here:
^{pr2}$
首先需要向receive()方法添加一个超时。在
这样循环就不会阻塞,如果你发送了一个空包而客户机没有响应,就会抛出WebsocketError,你可以关闭这个套接字。在
相关问题 更多 >
编程相关推荐