Node/Socket.io - 如何每x分钟发送一个函数/数据
问题描述:
我有一个Node
服务器使用socket.io
。我希望我的socket
对象每分钟一次向连接的浏览器发送一次数据。理想情况下,像setInterval()
这样的东西,而不是每隔x分钟拨打电话,查看时间并按分钟执行。Node/Socket.io - 如何每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。
谢谢你的回应,但我正在寻找的东西,检查的时间和执行上的那一刻,不是每个x分钟 –
他是这么写的? –
然后你想要类似https://github.com/kelektiv/node-cron。 – marchaos