【发布时间】:2015-05-01 15:33:15
【问题描述】:
我有一个 server.js 文件。
在里面,我定义了我的路线。
// routes
var mainRoutes = require('./routes/main.js')(app, express);
var apiRoutes = require('./routes/api.js')(app, express);
var socketRoutes = require('./routes/socket.js');
app.use('/', mainRoutes);
app.use('/api', apiRoutes);
// socket.io communication
io.sockets.on('connection', socketRoutes);
我的 socket.js 文件看起来像这样:
module.exports = function (socket) {
console.log('user connected');
socket.on('myEvent', function(data) {
// whatever ...
});
}
在这个函数中,我可以捕获事件并发送一些。 但我需要在某个时候向每个人发送消息。假设我收到“myEvent”事件。
所以基本上,我想做:
io.sockets.emit('messageForEveryone', "This is a test");
但在这里,我只能处理“套接字”参数,我猜它只适用于 1 个人。
我想将 io 从 server.js 传递给 socket.js。
我试过了(在 server.js 中):
var socketRoutes = require('./routes/socket.js', io);
那(在 socket.js 中):
module.exports = function (io, socket)
显然,它不起作用。我什至不明白 socket 参数是从哪里来的。
问题:当我在 sockets.js 文件的 module.export 中时,如何处理 io 对象?
非常感谢任何帮助,我对所有这些都是新手。
谢谢!
【问题讨论】:
标签: javascript node.js websocket