Oto sprawa: próbuję użyć socket.io w projekcie ekspresowym. Po uruchomieniu Express Js 4 zaktualizowałem mój generator ekspresów i teraz początkowe funkcje aplikacji trafiają do ./bin/www
pliku, w tym te vars (zawartość pliku www: http://jsfiddle.net/avMa5/ )
var server = app.listen(app.get('port'), function() {..}
(sprawdź to do npm install -g express-generator
czasuexpress myApp
Biorąc to pod uwagę, pamiętajmy, jak dokumenty socket.io proszą nas o odpalenie go:
var app = require('express').createServer();
var io = require('socket.io')(app);
Ok, ale nie mogę tego zrobić w app.js, jak zalecane. Aby to zadziałało, należy to zrobić w ./bin/www. in ./bin/www oto, co mogę zrobić, aby działał:
var io = require('socket.io')(server)
Ok, to działa, ale nie mogę używać zmiennej io nigdzie indziej i naprawdę nie chcę umieszczać moich funkcji socket.io w www
pliku.
Wydaje mi się, że to tylko podstawowa składnia, ale nie mogę tego uruchomić, nawet nie używając module.exports = server
ani server.exports = server
ani module.exports.io = app(io)
w pliku www
Więc pytanie brzmi: jak mogę używać socket.io mając ten plik / bin / www jako punkt wyjścia mojej aplikacji?
./bin/www.
. Po prostu umieść go w tym samym miejscu, w którym jesteśvar app
.