websocket如何知道服务器已被删除?

时间:2017-07-04 09:31:43

标签: http networking browser tcp websocket

我正在使用websocket(使用带有内置套接字的Sails.js,它基于Socket.io)。

我注意到Chrome每25秒收到两帧。我认为这是一种轮询,可以说明连接仍然存在。

但是,我取消了服务器,立即通知了Chrome。

此外,我使用kill命令强制关闭了节点进程,但仍然通知了Chrome,这意味着在关闭服务器之前,节点不是发送信号。

这是怎么发生的?

1 个答案:

答案 0 :(得分:3)

正常的TCP套接字连接执行此操作,因此如果websockets 没有,则会出现意外情况。

服务器内核负责在服务器进程终止/退出/被杀死时进行清理。这包括释放内存,关闭文件和关闭套接字。干净地关闭TCP套接字需要发送消息告诉对等方。

有趣的是,在一些带有用户空间winsock的Windows旧版本中,如果服务器进程崩溃,则不会发生这种情况。在所有具有兼容TCP支持的操作系统上,除非内核本身挂起,机器断电或网络中断,否则应该保证。

相关问题