node.js - Socket.io Client.emit 在 if 循环内不起作用

标签 node.js socket.io

我从 Node.js 开始。我想在每小时开始时向客户端发送一些数据。

var d = new Date();
var a=d.getDate();
var h = d.getHours();
if(h<10){
    h="0"+h;
}
if(d<10){
    d="0"+d;
}
time=a+""+h;

//Message from redis
rClient.on("message", function(channel, message) {
    var vals=message.split("#");

    if(vals[1]!=time){
        var msg="sending reset";
        console.log(msg);
        client.emit('hreset',msg);
        time=vals[1];
    }
}

客户端内部

socket.on('hreset', function(val) {
    alert(val);
    reset();
    alert("reseting Data completed");
});

但是它没有触发客户端中的代码。如果我将条件从 != 更改为 == 它工作正常并每秒触发。但在 != 的情况下不起作用。它进入 if 条件但不发出 hreset

最佳答案

您可以使用setInterval:

var obj = setInterval(yourFunc, 3600000); // 60*60*1000 ms

var yourFunc = function() {
    client.emit("message", data);
}; 

关于node.js - Socket.io Client.emit 在 if 循环内不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29795519/

相关文章:

javascript - jsdom 未加载或未在页面中运行外部脚本

angularjs - 哪种数据库和聊天库适合使用 Ionic 框架的基于聊天的应用程序

http - 将 node.js 中的 UDP 套接字从应用程序传输到 HTTP

node.js - Nodejs : disconnected client from the server by socketio

angularjs - 使用 Node Express 4 MongoDB 上传和检索图像

node.js - Socket.io:WebSockets 可以处理多少个并发连接?

node.js - NodeJS Winston 记录器不打印跟踪

angularjs - 将 POST 表单数据从 AngularJS 客户端发送到 Express/Node.js 服务器

javascript - 防止 favicon.ico 发出第二个请求 - Node.js

javascript - 从服务器推送 websocket 数据后 Angularjs 模型发生变化