Итак, вот сделка: я пытаюсь использовать socket.io в экспресс-проекте. После того, как Express Js 4 был выпущен, я обновил свой экспресс-генератор, и теперь начальные функции приложения входят в файл ./bin/www
, включая эти vars (содержимое www файла: http://jsfiddle.net/avMa5/)
var server = app.listen(app.get('port'), function() {..}
(проверьте его на npm install -g express-generator
, а затем express myApp
чтобы сказать, не забывайте, как socket.io docs просят уволить его:
var app = require('express').createServer();
var io = require('socket.io')(app);
Хорошо, но я не могу это сделать в app.js, как это рекомендовано. Это должно быть сделано в. /bin/www, чтобы работать. in./bin/www это то, что я могу сделать, чтобы заставить его работать:
var io = require('socket.io')(server)
Хорошо, это работает, но я не могу использовать io var где-нибудь еще, и я действительно не хочу помещать свои функции socket.io в файл www
.
Я предполагаю, что это просто базовый синтаксис, но я не могу заставить это работать, даже не используя module.exports = server
или server.exports = server
и module.exports.io = app(io)
в файле www
Итак, вопрос: как я могу использовать socket.io, имея этот файл /bin/www в качестве отправной точки моего приложения?