Vì vậy, đây là thỏa thuận: Tôi đang cố gắng sử dụng socket.io trong một dự án cấp tốc. Sau khi Express Js 4 được thành công, tôi đã cập nhật trình tạo express của mình và bây giờ các chức năng ban đầu của ứng dụng sẽ được đưa vào ./bin/www
tệp, bao gồm cả các vars đó (nội dung tệp www: http://jsfiddle.net/avMa5/ )
var server = app.listen(app.get('port'), function() {..}
(kiểm tra nó bằng cách npm install -g express-generator
và sau đóexpress myApp
điều đó đang được nói, chúng ta hãy nhớ cách các tài liệu socket.io yêu cầu chúng ta kích hoạt nó:
var app = require('express').createServer();
var io = require('socket.io')(app);
Được nhưng tôi không thể làm điều đó trong app.js, như được khuyến nghị. Điều này phải được thực hiện trong ./bin/www để hoạt động. trong ./bin/www, đây là những gì tôi có thể làm để nó hoạt động:
var io = require('socket.io')(server)
Ok, điều này hoạt động, nhưng tôi không thể sử dụng io var ở bất kỳ nơi nào khác và tôi thực sự không muốn đặt các hàm socket.io của mình vào www
tệp.
Tôi đoán đây chỉ là cú pháp cơ bản, nhưng tôi không thể làm cho nó hoạt động, thậm chí không sử dụng module.exports = server
hoặc server.exports = server
cũng không sử dụng module.exports.io = app(io)
tệp www
Vì vậy, câu hỏi đặt ra là: làm thế nào tôi có thể sử dụng socket.io có tệp / bin / www này làm điểm bắt đầu của ứng dụng của tôi?
./bin/www.
. Chỉ cần đặt nó vào cùng một nơi, nơi của bạnvar app
.