Also hier ist der Deal: Ich versuche, socket.io in einem Express-Projekt zu verwenden. Nachdem Express Js 4 gestartet wurde, habe ich meinen Express-Generator aktualisiert und jetzt gehen die anfänglichen Funktionen der App in die ./bin/www
Datei, einschließlich dieser Variablen (www-Dateiinhalt: http://jsfiddle.net/avMa5/ ).
var server = app.listen(app.get('port'), function() {..}
(Überprüfen Sie es bis npm install -g express-generator
und dannexpress myApp
Lassen Sie uns trotzdem daran denken, wie die Dokumente von socket.io uns bitten, sie abzufeuern:
var app = require('express').createServer();
var io = require('socket.io')(app);
Ok, aber ich kann es nicht in app.js machen, wie empfohlen. Dies sollte in ./bin/www erfolgen, um zu funktionieren. in ./bin/www ist dies, was ich tun kann, um es zum Laufen zu bringen:
var io = require('socket.io')(server)
Ok, das funktioniert, aber ich kann das io var nirgendwo anders verwenden, und ich möchte meine socket.io-Funktionen wirklich nicht in eine www
Datei einfügen .
Ich denke , das nur grundlegende Syntax ist, aber ich kann das nicht an der Arbeit, nicht einmal mit module.exports = server
oder server.exports = server
noch module.exports.io = app(io)
auf www - Datei
Die Frage ist also: Wie kann ich socket.io verwenden, wenn diese / bin / www-Datei als Ausgangspunkt für meine App dient?
./bin/www.
. Stellen Sie es einfach an den gleichen Ort, an dem Sie sichvar app
befinden.