与直接使用websockets相比,socket.io处理心跳事件和自动重连接。但是,由于我的客户端对时间非常敏感,所以我还想在套接字处于不活动状态N秒时显示警告消息,并在新消息/心跳出现时删除警告。
是否可以在socket.io上为这样的“活动”/“非活动”事件创建事件侦听器?还是使用普通的websockets并手工实现心跳/重连接机制会更容易呢?
发布于 2022-11-08 15:44:02
我建议在套接字中设置一个setTimeout变量,在不活动的情况下向用户发出消息,并在收到消息后重置超时。
与…有关的东西:
io.on('connection', async (socket) => {
let userTimeout = setTimeout(() => socket.to(socket.id).emit("You have been inactive"), 60000);
/* ... */
socket.on('message', async(socket) => {
if(userTimeout) clearTimeout(userTimeout);
userTimeout = setTimeout(() => socket.to(socket.id).emit("You have been inactive"), 60000);
})
})https://stackoverflow.com/questions/74362676
复制相似问题