node.js - 如何检测最近两分钟未触发的事件

标签 node.js express socket.io

我正在为管理员客户(nodejs+socketio+express)进行实时聊天。在聊天期间,当客户等待管理员响应超过两分钟时,我需要向客户显示消息“请稍后再试”

例如客户端从此事件获取响应

socket.on('Admin Response',function(msg){

});

如何跟踪此事件在过去两分钟内没有触发?

最佳答案

执行此操作的简单方法如下:

var timeout=setTimeout(sendMessage,120000);

socket.on('Admin Response',function(msg){
    clearTimeout(timeout);
    var timeout=setTimeout(sendMessage,120000);
});

对于较大的应用程序,我会将上次发送时间(和其他信息)存储在定义连接的对象中。有一个常规流程来查找没有事件的连接,并进行适当的处​​理。

关于node.js - 如何检测最近两分钟未触发的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37922807/

相关文章:

angularjs - 直接在前端自动更新 mongodb 中的更改,无需使用 Node Socket.io 和 angularjs 刷新页面

node.js - 如何在socket.io nodejs服务器上列出房间

javascript - Express Middleware 为所有 app.get() 填充一个 Jade 变量

javascript - 无法在 Node js 中使用 ecdsa 模块进行签名

node.js - 在Google App Engine上部署socket.io

node.js - 检查用户身份验证

javascript - 使用 Express 和 Socket.IO 的 session 支持的解释?

连接到 cryptocompare 的 Python socketio 示例

javascript - 我是否正确使用了这个 Promise 功能

node.js 在变量中表达 mvc 方法名称