Redis + Socket.io - 如何让客户端同时加入两个房间?

时间:2017-02-24 10:42:49

标签: javascript node.js redis

在我的项目中,我有一个用户,该用户可以在两个频道中,但我希望这个用户可以接收两个不同频道的通知。

我可以问一个问题吗?

如何让客户加入多个会议室,并在不同的两个会议室同时接收2个通知。

我的代码在这里: client.js

var socket = io.connect('localhost:3000');
  socket.on('connect', function(){
  socket.emit("subscribe",'test');
});

socket.on('message', function(message) {
   console.log('Receive >>', message);
});

server.js

var client = redis.createClient();

   io.sockets.on('connection', function (socket) {

      var broadcast = function(channel, message){
      socket.broadcast.to(channel).emit('message', message);
   }

   socket.on("subscribe",function(channel){
       client.subscribe(channel);
       socket.join(channel);
   });

   socket.on('disconnect', function() {
       client.unsubscribe(channel);
       client.removeListener(broadcast)
   })

   client.on("message", broadcast);
});

我想:socket.on("subscribe",function(channel){ client.subscribe(channel, channel1, channel2); socket.join(channel, channel1, channel2); });

但是socket.io不支持。 请给我一个想法或建议。非常感谢!

0 个答案:

没有答案