Node / Socket.io – 如何每x分钟发送一个函数/数据
我有一个使用socket.io
的Node
服务器。 我希望我的socket
对象每分钟一次向连接的浏览器发送一些数据。 理想情况下,像setInterval()
这样的东西,而不是每隔x分钟调用一次,查看时间并按分钟执行。
我想如果我想每1分钟发一次,它会看起来像这样。
var data = "someData"; io.on('connection', function (socket) { socket.emit_every_x_minutes(1, 'myData', data)} });
这会每1分钟定期向客户端套接字发出"someData"
。
什么是正确的方式发出每x分钟socket.io
?
为什么不使用setInterval / setTimeout?
var data = "someData"; io.on('connection', (socket) => { setInterval(() => { socket.emit(1, 'myData', data)} }, 60 * 1000); });
如果你想在一分钟,每一分钟,没有图书馆:
var data = "someData"; const doEveryMinute = (socket) => { setTimeout(() => { setInterval(() => doEveryMinute(socket), 60000); socket.emit(1, 'myData', data)} }, (60 - date.getSeconds()) * 1000); } io.on('connection', (socket) => { doEveryMinute(socket); });
如果准确性很重要,那么你会想要像https://github.com/kelektiv/node-cron 。
您可以使用节点调度或节点cron模块。
请访问: https : //www.npmjs.com/package/node-schedule
要么
请访问: http : //merencia.com/node-cron/