2012-09-02 12 views
16

W trzeciej wersji ExpressJS express.createServer() zmieniono na express() ta zmiana utrudnia powiązanie pliku socket.io na tym samym porcie. Może ktoś mógłby znaleźć solidną decyzję.Jak korzystać z ExpressJS i Socket.io na tym samym porcie?

Teraz, to nie działa:

var express = require('express') 
, app = express.createServer() 
, io = require('socket.io').listen(app); 

Mój obecny workflow: https://gist.github.com/3596852

+0

Byłbym też zainteresowany tym. Plik readme Socket.io został zaktualizowany do wersji Express 3.0 (zobacz https://github.com/LearnBoost/socket.io#express-3x), ale to też nie działa. –

Odpowiedz

31

Jest opisane na stronie socket.io github (jak @Golo stwierdził w komentarzu):

var app = express() 
    , server = require('http').createServer(app) 
    , io = io.listen(server); 

server.listen(80); 

To działa, mam to uruchomione.

Prawdopodobnie Golo zapomniała o zmianie słuchania z app.listen(80) na server.listen(80). Walczyłem z tym również, dopóki nie zdałem sobie sprawy z mojego głupiego błędu.

1
var app = require('express')() 
    , server = require('http').createServer(app) 
    , io = require('socket.io').listen(server) 

app.start = app.listen = function(){ 
    return server.listen.apply(server, arguments) 
} 

app.start(8080) 
+0

To miło, ale nie mogłem skonfigurować expressJS https://gist.github.com/3607715 – NiLL

+2

https://gist.github.com/3620800 sprawdź ten fragment, jego przykład działa z parserem ciała. – supernova

Powiązane problemy