使用Node Js在Laravel中进行一对一聊天

时间:2015-10-02 15:01:04

标签: node.js redis laravel-5 livechat predis

我实施了一对一聊天,在发送消息时我在控制器中发布消息

$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);  
      } 
  }); 

0 个答案:

没有答案