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