Tornado的websocket实现如何找到并关闭僵尸websockets?

时间:2012-05-28 21:48:36

标签: websocket tornado zombie-process

假设强制终止浏览器,并且没有向Tornado服务器发送关闭消息。 Tornado如何知道(或甚至知道?)此连接已在客户端终止?浏览Tornado websocket code并不能让我明白这一点。

我问,因为我有时间没有调用服务器端的on_close方法(可能是因为客户端无法发送其关闭消息)几分钟,但是然后Tornado似乎注意到客户端已经消失了并关闭套接字本身。

有什么见解?

1 个答案:

答案 0 :(得分:0)

Tornado监视基础TCP连接是否已关闭。如果由于关闭握手或因发生网络错误而关闭连接并不重要。在任何一种情况下,都会调用on_close。

如果客户端失去网络连接,TCP连接可能会被认为是开放几分钟,然后TCP堆栈才会确定连接超时。在那之后,它将关闭套接字,Tornado将被通知等等。