Как выполнить emit (socket.io) в указанное время c с NodeJS? - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть приложение android, которое обменивается данными с сервером NodeJS через socket.io.

Мне нужен сервер NodeJS для отправки emit в указанное c время, например, 7 o Часы всем клиентам.

Пример:

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

Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

Я провел небольшое исследование и, очевидно, setTimeout или setInterval являются ресурсоемкими. Наконец, я выбрал CRON в нужное время, которое делает HTTP-вызов в GET. Спасибо'S!

0 голосов
/ 20 апреля 2020

Если вы хотите сделать это один раз в установленное время c, то просто используйте setTimeout и вычислите разницу между текущим временем сервера и временем передачи и передайте его в setTimeout вызов.

Если вы хотите сделать это более одного раза в установленном порядке c раз, вы можете сохранить это время в массиве и затем использовать setInterval с интервалом в 1 минуту, чтобы проверить, пора ли выполнить emit.

Реализация полностью зависит от ваших потребностей. Возможно, вам нужно сохранить время выполнения в базе данных, а затем создать REST API для их проверки и настроить cronjob для вызова этого API каждую минуту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...