Então aqui está o negócio: estou tentando usar socket.io em um projeto expresso. Depois que o Express Js 4 foi lançado, eu atualizei meu express-generator e agora as funções iniciais do aplicativo vão para o ./bin/www
arquivo, incluindo aqueles vars (conteúdo do arquivo www: http://jsfiddle.net/avMa5/ )
var server = app.listen(app.get('port'), function() {..}
(verifique até npm install -g express-generator
láexpress myApp
Dito isso, vamos lembrar como o socket.io docs nos pede para dispará-lo:
var app = require('express').createServer();
var io = require('socket.io')(app);
Ok, mas eu não consigo fazer isso dentro do app.js, como recomendado. Isso deve ser feito em ./bin/www para funcionar. em ./bin/www isto é o que posso fazer para fazê-lo funcionar:
var io = require('socket.io')(server)
Ok, isso funciona, mas não posso usar o io var em qualquer outro lugar e realmente não quero colocar minhas funções socket.io no www
arquivo.
Acho que esta é apenas uma sintaxe básica, mas não consigo fazer funcionar, nem mesmo usando module.exports = server
ou server.exports = server
nemmodule.exports.io = app(io)
no arquivo www
Portanto, a questão é: como posso usar o socket.io tendo este arquivo / bin / www como ponto de partida do meu aplicativo?
./bin/www.
. Basta colocá-lo no mesmo lugar, onde vocêvar app
está.