Я использую модульную настройку, в которой Socket.IO не является частью моего приложения или маршрутов, а находится во внешнем модуле.
У меня есть PHP-скрипт, который получает данные, а затем обновляет базу данных. Я настроил его для отправки запроса cURL в приложение узла, и я хотел бы, чтобы маршрут вызывал событие, которое прослушивает мой модуль сокета, чтобы перейти и выдать событие socket.io, а также обновить то, что клиент видит в в режиме реального времени.
Событие передается всему приложению, или я ошибся в своем подходе?
Спасибо.
Экспресс 3 Маршрут
var events = require('events');
var event_emitter = new events.EventEmitter();
router.post('/php-script-calls-this', function(req, res, next) {
event_emitter.emit('do-socket-event');
res.sendStatus(200);
});
Файл сокета (подмодуль, вызываемый в моем модуле io.js)
module.exports = function(io, socket) {
var events = require('events');
var event_emitter = new events.EventEmitter();
event_emitter.on("do-socket-event", function() {
socket.emit("update-client-data");
});