Así que aquí está el trato: estoy tratando de usar socket.io en un proyecto express. Después de que se lanzó Express Js 4, actualicé mi generador expreso y ahora las funciones iniciales de la aplicación entran en el ./bin/wwwarchivo, incluidas esas vars (contenido del archivo www: http://jsfiddle.net/avMa5/ )
var server = app.listen(app.get('port'), function() {..}
(compruébalo npm install -g express-generatory luegoexpress myApp
Dicho esto, recordemos cómo los documentos de socket.io nos piden que lo disparemos:
var app = require('express').createServer();
var io = require('socket.io')(app);
Ok, pero no puedo hacerlo dentro de app.js, como se recomienda. Esto debe hacerse en ./bin/www para que funcione. en ./bin/www esto es lo que puedo hacer para que funcione:
var io = require('socket.io')(server)
Ok, esto funciona, pero no puedo usar la var io en ningún otro lugar, y realmente no quiero poner mis funciones socket.io en el wwwarchivo.
Supongo que esta es solo una sintaxis básica, pero no puedo hacer que esto funcione, ni siquiera usando module.exports = servero server.exports = serverni module.exports.io = app(io)en el archivo www.
Entonces, la pregunta es: ¿cómo puedo usar socket.io con este archivo / bin / www como punto de partida de mi aplicación?
./bin/www.. Solo ponlo en el mismo lugar, dondevar appestá tu .