У меня есть два приложения Express.js, работающие на моем сервере.
Простое ванильное приложение под названием «main-app» и другое, использующее Socket.IO, под названием «socket-app».
У меня есть «основное приложение», работающее на «mydomain.com», и «socket-app», работающее на поддомене на «socket.mydomain.com».
Я направляю запросы в приложение-сокет через встроенное промежуточное ПО Express vhost.
-- внутри main-app.js --
var express = require('express');
var app = module.exports = express.createServer();
app.use(express.vhost('socket.mydomain', require('./socket-app/app.js')));
app.listen(8080, function(){
console.log("Express server listening on port %d in %s mode");
});
Это отлично работает, и я вижу, что мое приложение для сокетов работает на порту 8080 в socket.mydomain.
Однако, похоже, существует проблема с истечением времени ожидания веб-сокетов и отсутствием события «обновления» при запуске приложения Socket.IO через vhost, как обсуждалось здесь
Итак, мой вопрос: как я могу передать это событие «обновления» из моего основного приложения в мое приложение для сокетов, чтобы все подключенные сокеты могли слышать, когда кто-то подключается и отключается?
Я попытался создать событие «обновление» из «основного приложения», но, похоже, оно не работает.
app.on('upgrade', function(req, socket) {
socket.emit('upgrade', app);
});
Что мне здесь не хватает?