Обычно при запросе можно получить объект с сокетом и что-то делать (у меня express с socket.io). Но, если например, у меня есть крон-джоба, которая запускается раз в час и что-то делает, потом она хочет оповестить всех приконнекченых клиентов (emit), но реквеста не было, и получить сокет некак. Глобальные переменные использовать - совсем не вариант я думаю. При запуске приложения таким образом - app.set('io', io);, сеттим сокет где io содержит основные события и авторизацию сокет-клиентов. Как можно решить такую задачу не используя реквест?
Alexander K.: самый лучший вариант это push уведомления. Правда тут я подсказать не могу, так как не делал ни разу. push уведомления это не только для мобильных. По сути это тот же websocket сервер, на который откуда угодно отправляются нотификации через http апи, а клиент их сразу получает(если он онлайн) и если подписан на канал нужный.
Где-то видел на гитхабе, но уже не найду.
subscribe publish ключевые слова.
Александр Аксентьев: спасибо, рассмотрю этот вариант. Но думаю, в моем случае все же лучше всего как-то расшарить все сокет соединения чтобы были доступны в любом месте , пока только не пойму как.
Alexander K.: вне сервера никак) По сути только использовать схему как выше привел, можно самописный вариант сделать простой, в любом случае только один этот вариант возможен.
Дмитрий Вапельник: если не ошибаюсь в MongoDB есть механизм для подписки на новые документы. Вполне себе отличный вариант, чекать самому не надо, а только подписаться в базе на обновления коллекции.