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