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/www
archivo, 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-generator
y 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 www
archivo.
Supongo que esta es solo una sintaxis básica, pero no puedo hacer que esto funcione, ni siquiera usando module.exports = server
o server.exports = server
ni 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 app
está tu .