./bin/www
//jsfiddle.net/avMa5/)
var server = app.listen(app.get(‘port’), function() {..}
(检查通过npm install -g express-generator,然后express myApp
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文件中。
www
我想这只是基本语法,但我什至无法使用它,甚至不能在www文件上使用module.exports = server或server.exports = server``module.exports.io = app(io)
module.exports = server
server.exports = server``module.exports.io = app(io)
所以问题是:我如何使用具有此/ bin / www文件作为我的应用程序起点的socket.io?
事实证明它确实是一些基本sintax问题....我从这些行本socket.io聊天教程 …
在./bin/www之后 var server = app.listen(.....)
var server = app.listen(.....)
var io = require('socket.io').listen(server); require('../sockets/base')(io);
所以现在我创建../sockets/base.js文件,并将这个小家伙放进去:
module.exports = function (io) { // io stuff here... io.on('conection..... }
是的 现在它可以工作了……所以我想除了在/ bin / www内部启动socket.io之外,我别无选择,因为那是我的http服务器启动的地方。目标是现在我可以在其他文件中构建套接字功能,通过以下方式保持事物的模块化require('fileHere')(io);
require('fileHere')(io);
<3