1

私は1対1のチャットを実装し、メッセージを送信しながらコントローラーでメッセージを

$redis->publish('message', json_encode($data));

server.js で、接続ごとにメッセージをサブスクライブします。プールから特定のソケットを選択して、そのメッセージを特定のユーザーに送信します。私の問題は、各メッセージが接続数に等しい複数回受信者に送信されることです。server.js の私のコードは

io.on('connection', function (socket) 
{
  clients[socket.id] = socket;
  var redisClient = redis.createClient();
  redisClient.subscribe('message');


  redisClient.on("message", function(channel, message) 
  {
      var data = JSON.parse(message);
      console.info("sent");
      if(typeof connectedClients[data['receiver']] === 'undefined'){}
      else
      {
        connectedClients[data['receiver']].socket.emit(channel, message);  
      } 
  }); 
4

0 に答える 0