Как отправить через Socket.io данные полученные с помощью ajax запроса?
Добрый день. Нужно по сигналу от внешнего сервиса открывать модалку в браузере. Решил делать на сокетах, путь в том что когда на определённый адрес приходит POST запрос, нужно определить у какого юзера показать модалку, и собственно выполнить emit.
Но я не пойму как вызвать отправку данных на сокет из середины обработчика post запроса (использую express).
Внутри POST обработчика нужно как-то уведомить socket обработчик что надо отправить сообщение.
В рамках одного процесса это можно сделать с помощью событий - почитай про EventEmitter.
Если процессы разные - нужно тогда уведомлять иначе. Первое, и самое простое, что пришло в голову - что-то вроде очередей (RabbitMQ) или, более легковесное решение, Pub/Sub (Redis)
Вообще я в одном процессе хотел всё сделать.
А если я через EventEmitter обращусь к функции внутри обработчика сокетов, то разве переменная socket будет доступна?
На soсket надо кинуть сообщение и там его обработать. Можно либо кидать сообщение на конкретный socket, но тогда надо знать кому его кидать.
Нужно сделать общую шину - с обработчика POST - кидать уведомление, в soсket - подписаться на уведомление.