[英]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.