2012-09-02 32 views
16

En la tercera versión de ExpressJS express.createServer() cambiado a express() estos cambios dificultan el enlace de socket.io en un mismo puerto. Tal vez alguien pueda encontrar una decisión sólida.¿Cómo usar ExpressJS y Socket.io en un mismo puerto?

Ahora bien, esto no funciona:

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

Mi flujo de trabajo actual: https://gist.github.com/3596852

+0

Estaría interesado en eso también. El archivo léame de Socket.io se actualizó para que coincida con Express 3.0 (consulte https://github.com/LearnBoost/socket.io#express-3x), pero tampoco me funciona. –

Respuesta

31

Es descrito en la página socket.io github (como @Golo indica en su comentario):

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

server.listen(80); 

Esto funciona, lo tengo en ejecución.

Probablemente lo que Golo ha olvidado es cambiar la escucha de app.listen(80) a server.listen(80). He luchado con esto también hasta que me di cuenta de mi estúpido error.

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

Es bueno, pero no pude configurar expressJS https://gist.github.com/3607715 – NiLL

+2

https://gist.github.com/3620800 echa un vistazo a esta esencia, es con un ejemplo de analizador de cuerpo de trabajo. – supernova

Cuestiones relacionadas