Socket.IO w subdomenach z vhostem Express.js.

Mam dwa aplikacje Express.js uruchomione na moim serwerze.

Prosta aplikacja waniliowa o nazwie „main-app” i inna aplikacja Socket.IO o nazwie „socket-app”.

Mam „main-app” działający w „mydomain.com” i „socket-app” działający na poddomenie w „socket.mydomain.com”

Przekierowuję żądania do aplikacji-gniazda za pomocą wbudowanego oprogramowania pośredniczącego vhost Express.

- wewnątrz 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");
});

Działa to dobrze i widzę moją aplikację-gniazdo działającą na porcie 8080 w socket.mydomain

Wydaje się jednak, że istnieje problem z przekroczeniem limitu czasu i brakiem zdarzenia „uaktualnienia” podczas uruchamiania aplikacji Socket.IO za pośrednictwem vhosta, jak omówionotutaj.

Więc moje pytanie brzmi: jak mogę potraktować to wydarzenie „uaktualnienia” z mojej aplikacji głównej do mojej aplikacji-gniazdka, aby wszystkie podłączone gniazda mogły słyszeć, kiedy ktoś się łączy i rozłącza?

Próbowałem wysłać zdarzenie „upgrade” z poziomu „main-app”, ale wydaje się, że nie działa.

app.on('upgrade', function(req, socket) {
    socket.emit('upgrade', app);    
});

Czego mi tu brakuje?

questionAnswers(1)

yourAnswerToTheQuestion