У меня на моем сервере два приложения Express.js.Socket.IO на субдоменах с Express.js vhost
Обычное приложение для ванили, называемое «главное приложение», а другое, использующее Socket.IO, называемое «сокет-приложение».
У меня есть «главный-приложение» работает на «mydomain.com» & «сокет-приложение» работает на подобласти в «socket.mydomain.com»
Я маршрутизации запросов на сокет-приложение через Встроенное промежуточное ПО vhost Express.
- внутри главных-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, как обсуждалось here.
Итак, мой вопрос: как я могу передать это событие «обновления» из моего основного приложения в мое socket-app, поэтому все подключенные сокеты могут слышать, когда s omeone подключается & отключается?
Я пробовал испускать событие «обновления» из «основного приложения», но он, похоже, не работает.
app.on('upgrade', function(req, socket) {
socket.emit('upgrade', app);
});
Что мне здесь не хватает?
Так что я получил его. Поскольку Socket.IO и Express.vhost, похоже, не хотят хорошо сочетаться друг с другом, кажется, что решение состоит в том, чтобы использовать создание экземпляра Socket.IO в главном приложении, а затем передать этот экземпляр в другие приложения, которые должны связываться через сокеты , Я скоро напишу пример в своем блоге. – braitsch
Удивительный! Можете ли вы также быстро отправить ответ на свой вопрос и принять его? См. Http://blog.stackoverflow.com/2012/05/encyclopedia-stack-exchange/ –