【发布时间】:2018-01-02 15:51:59
【问题描述】:
我在节点应用程序中使用 Socket.IO,我希望捕获并响应不同文件中的套接字事件,我该怎么做?
我能够找到的一个解决方案是在设置 socket.io 的文件中执行此操作:
var events = [];
module.exports.setup = (server) => {
io = require('socket.io')(server);
console.log("Socket.io setup complete");
io.on('connection', (socket) => {
for(let e of events){
socket.on(e.event, e.callback);
}
});
};
module.exports.on = (event, callback) => {
events.push({event: event, callback: callback});
};
这很好用,唯一的问题是我无法访问套接字对象,因此我不知道哪个套接字发出了事件。
编辑
我想另一种方法是将 cb 中的套接字作为第一个参数传递,但也许有更好的方法。
【问题讨论】:
-
记录
socket.id怎么样? -
@asosnovsky 你能详细说明一下吗?
-
看看socket.io的文档socket.io/docs/server-api/#socket-id
-
@asosnovsky 我知道,我要问的是如何在使用导出的
on函数时访问套接字对象。或者任何其他方式在不同的文件中注册套接字事件?
标签: javascript node.js sockets socket.io