【发布时间】:2014-07-26 19:59:05
【问题描述】:
我似乎对如何构建节点模块缺乏了解。
我在app.js 中有以下内容。
var io = require('socket.io')(http);
io.on('connection', function(socket){
socket.on('disconnect', function(){
console.log('user disconnected');
});
console.log("New user " + socket.id);
users.push(socket.id);
io.sockets.emit("user_count", users.length);
});
这很好。我可以对来自客户端的各种消息做出反应,但我也有几个模块需要对不同的消息做出反应。例如我的cardgame.js 模块应该对:
socket.on("joinTable"...
socket.on("playCard"
虽然我的chessgame.js 应该做出反应
socket.on("MakeAMove"...
和我的 user.js 文件句柄:
socket.on('register' ...
socket.on('login' ...
我将如何链接/构造我的文件以处理这些不同的消息,以便我的对套接字请求做出反应的文件不会变得太大。
基本上,如果我可以将套接字对象传递给这些模块,那就太好了。但问题是,在建立连接之前,套接字将是未定义的。
另外,如果我将整个 io 变量传递给我的模块,那么这些模块中的每一个都会有 io.on('connection',..) 调用。不确定这是否可能或需要。
【问题讨论】:
标签: javascript node.js socket.io