繁体   English   中英

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

[英]How to execute an emit (socket.io) at a specific time with NodeJS?

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

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

例子:

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

谢谢你的帮助 !

如果您想在您知道的 static 时间执行一次,则只需使用setTimeout并计算服务器当前时间与发出时间之间的差并将其传递给setTimeout调用。

如果你想在你知道的 static 次多次执行此操作,则可以将这些时间存储在一个数组中,然后使用setInterval以 1 分钟的时间间隔检查是否是执行发射的时间。

实施完全取决于您的需求。 也许您需要将执行时间存储在数据库中,然后创建 REST api 来检查它们并配置一个 cronjob 以每分钟调用此 api。

我做了一些研究,显然 setTimeout 或 setInterval 是资源密集型的。 最后,我在所需的时间选择了 CRON,它在 GET 中调用了 HTTP。 谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM