使用socketio心跳的优点/缺点
Socket.io允许您使用检测信号“检查Socket.IO连接的健康状况”。 什么是心跳,为什么要或不应该使用它们?
检测信号是指定期从客户端发送到服务器(或从服务器到客户端并返回到服务器)的小消息,以确认客户端仍处于活动状态。
例如,如果您有一个Node.js应用程序用于聊天室,并且用户在很长时间内不会说任何内容,则无法确定它们是否真的连接在一起。 通过以预定间隔(例如,每15秒)发送一次听力,客户端通知服务器它仍然在那里。 如果服务器从客户端获得心跳后,例如20秒,则很可能已经断开连接。
这是必要的,因为不能保证通过TCP的干净连接终止 -如果客户端崩溃或发生其他事情,则不会从客户端收到终止数据包,并且服务器不会知道客户端已断开连接。 此外,Socket.IO支持各种其他机制(TCP套接字除外)传输数据,在这种情况下,客户端不会(或不能)向服务器发送终止消息。
默认情况下,一个Socket.IO客户端会每隔15秒向服务器发送一个心跳( 心跳间隔 ),如果服务器在20秒内没有听到客户端的请求( 心跳超时 ),则认为客户端断开连接。
我不能想到许多你可能不想使用心跳的平均用例。
- NPM不能安装依赖关系 – 试图解锁没有被locking的东西
- 仅使用Node.js与使用Apache / Nginx的Node.js
- 如何与Socket.IO 1.x和Express 4.x共享会话?
- 使用PassportJS,如何将其他表单域传递给本地authentication策略?
- 在pkg-configsearchpath中未find软件包cairo。 节点js安装canvas问题
- Node.JS错误:ENOSPC
- WebSockets和Apache代理:如何configurationmod_proxy_wstunnel?
- 为什么我可以在“res.send”之后执行代码?
- 基本的web服务器与node.js和expression为服务的HTML文件和资产