Socket.IO на поддоменах с vhost Express.js
У меня на сервере запущены два приложения Express.js.
Простое ванильное приложение под названием «основное приложение» и другой, который использует Socket.IO под названием «socket-app».
У меня есть "главное приложение" работает на & quot; mydomain.com & quot; & Амп; & Quot; сокет-приложение & Quot; работает на поддомене по адресу "socket.mydomain.com"
Я перенаправляю запросы к приложению-сокету через встроенное промежуточное программное обеспечение vhost Express.
- внутри 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");
});
Это работает нормально, и я вижу, что мое socket-приложение работает на порте 8080 в socket.mydomain
Тем не менее существует проблема с истечением времени ожидания веб-сокетов и неполучением «обновления». событие при запуске приложения Socket.IO через vhost, как обсуждалосьВот.
Поэтому мой вопрос: как я могу передать это «обновление»? событие из моего основного приложения в мое приложение сокетов, чтобы все подключенные сокеты могли слышать, когда кто-то подключается & amp; разъединяет?
Я пытался испустить "обновление" событие из & quot; основного приложения & quot; но, похоже, он не работает.
app.on('upgrade', function(req, socket) {
socket.emit('upgrade', app);
});
Что мне здесь не хватает?