如何使用 NodeJS 在特定时间执行发射(socket.io)?

我有一个通过 socket.io 与 NodeJS 服务器通信的 android 应用程序。

我需要我的 NodeJS 服务器在特定时间(例如 7 点)向所有客户端发送发射。

例子:

socket.emit ('example', 'data', 'hour to emit');

谢谢你的帮助 !


手掌心
浏览 154回答 2
2回答

ibeautiful

如果您想在您知道的静态时间执行一次,那么只需使用setTimeout并计算服务器当前时间与发出时间之间的差异并将其传递给setTimeout调用。如果您想在已知的静态时间多次执行此操作,您可以将这些时间存储在一个数组中,然后setInterval以 1 分钟的间隔使用来检查是否是时候执行发射了。实施完全取决于您的需求。也许您需要将执行时间存储在数据库中,然后制作一个 REST api 来检查它们并配置一个 cronjob 以每分钟调用此 api。

喵喔喔

我做了一些研究,显然 setTimeout 或 setInterval 是资源密集型的。最后,我在所需时间选择了 CRON,它在 GET 中进行 HTTP 调用。谢谢!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript