我在Nodejs中使用socketIO,我正在处理两种类型的连接/命名空间,用户和设备,以便特定用户可以控制特定设备。
我为用户执行命名空间,为设备执行另一个命名空间。
var users = io.of('/users').on('connection', function(socket){
// here I need to emit an event for another namespace
});
var devices = io.of('/devices').on('connection', function(socket){
// here's the namespace that contains the event I need to fire from users namespace
});
是否有更好的设计模式来处理这种情况?
感谢。
答案 0 :(得分:2)
您可以使用相同的实例来发出这些事件,就像这样。
var users = io.of('/users');
var devices = io.of('/devices')
users.on('user_action', function(socket){
devices.emit('device_custom_event');
});
devices.on('connection', function(socket){
users.emit('device_connected')
});
答案 1 :(得分:1)
我找到了一个很好的解决方案:
io.of('/devices').to(socket_id).emit('event_name');