我想在两个节点实例之间共享由socket.io创建的房间,这些实例已经在使用redis- store,但是无法在不同的节点实例上获取io.sockets.in(ROOM_ID).emit(MESSAGE,DATA);
我正在尝试-实例A-
io.set('store',...) io.on('connection',function(socket){ socket.join(''room-ABCD); });
开阔一些东西,我能够使用
io.sockets.in('room-ABCD').emit('event',{data:{}});
但是我需要从实例B执行类似的广播。
在实例B io.set('store')上与上面类似,但我无法使用io.sockets.in('room- ABCD').emit('event',{data:{}})
io.set('store')
io.sockets.in('room- ABCD').emit('event',{data:{}})
我的理解是-redisStore会将socket + room信息放入redis,以便其他进程可以访问它。[如果我错了,请更正]。现在,我不知道如何在节点的其他过程中识别和获取此信息。
谢谢。
回答与问题有关的查询- 一,二和一。
我需要集中的确切地点是-Joinig房间。
我正在使用client_socket.join("room_name"),但是它将客户端套接字推到房间。
client_socket.join("room_name")
现在,尝试io.sockets.socket(client_socket.id).join("room_name")。
io.sockets.socket(client_socket.id).join("room_name")
这会将会议室成员推送到Redis,现在可以在另一个节点实例中访问它们。
在过程B中io.sockets.in("room_name").emit("event_name",{data:"1"})工作。
io.sockets.in("room_name").emit("event_name",{data:"1"})