使用socketio心跳的优点/缺点



Socket.io允许您使用心跳来"检查Socket.io连接的运行状况"。心跳究竟是什么?为什么应该或不应该使用它们?

心跳是一条从客户端定期发送到服务器(或从服务器发送到客户端再返回到服务器(的小消息,用于确认客户端仍然存在并处于活动状态。

例如,如果你有一个Node.js应用程序为聊天室提供服务,而用户在几分钟内什么都不说,那么就无法判断他们是否真的还在连接。通过以预定的时间间隔(例如,每15秒(发送一次心跳,客户端通知服务器它仍然在那里。如果服务器从客户端接收到心跳已经过去了20秒,那么它很可能已经断开了连接。

这是必要的,因为不能保证通过TCP干净地终止连接——如果客户端崩溃或发生其他事情,您将不会收到来自客户端的终止数据包,服务器也不会知道客户端已经断开连接。此外,Socket.IO支持各种其他机制(TCP套接字除外(来传输数据,在这些情况下,客户端不会(或不能(向服务器发送终止消息。

默认情况下,Socket.IO客户端将每15秒向服务器发送一次检测信号(检测信号间隔(,如果服务器在20秒内没有收到客户端的消息(heartbeat timeout(,则会认为客户端已断开连接。

我想不出有多少平均使用情况下你可能不想使用心跳。

相关内容

  • 没有找到相关文章

最新更新