告诉服务器,用户不再在互联网上

我是node.js的新手,尝试使用node.js和socket.io开发群聊。 我能够做群聊,也能够pipe理系统中的数据。

现在,我的问题是离线用户,即没有连接到互联网。 我有这个用户的连接stream,就好像我做receiverUserSocket.emit(“sendMsg”,数据)没有办法来validation这个用户是否收到消息。 是的,有一个事件。(“断开”),但我得到约30 – 40秒的延迟。

有什么方法可以确定我们要发送消息的用户是在线还是离线?

最好的方法是使用socket.io心跳(假设你使用的是socket.io)。

心跳和检测终止连接的问题在这里很好地解释:

使用socketio心跳的优点/缺点

请记住,您可以控制心跳超时值(从而强制断开连接事件显得快得多),如下所述:

在socket.io中控制来自客户端的心跳超时

但是这可能会给服务器带来更多的压力。