3

假设浏览器被强制终止,并且没有关闭消息发送到 Tornado 服务器。Tornado 怎么知道(或者它甚至知道?)这个连接已经在客户端被终止了?查看Tornado websocket 代码对我来说并不明显。

我问是因为我曾经有几分钟没有调用服务器端 on_close 方法(可能是因为客户端未能发送其关闭消息),但是 Tornado 似乎注意到客户端已经消失并关闭了插座本身。

有什么见解吗?

4

1 回答 1

0

Tornado 监控底层 TCP 连接是否关闭。由于关闭握手或发生网络错误而关闭连接都没有关系。在任何一种情况下,都会调用 on_close。

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

于 2012-10-30T22:38:01.327 回答