1

私の要件は、特定のユーザーにメッセージを公開することです。

コントローラ

$messageQueueKey=(string)$receiver; (receiver_id)
$redis->publish($messageQueueKey, json_encode($data));

Server.js //ノード js

  var handshakeData = socket.request;
  var messageQueueKey=handshakeData._query['userid'];

  clients[socket.id] = socket;

  var redisClient = redis.createClient();
  redisClient.subscribe(messageQueueKey);
 // redisClient.subscribe('message');

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

ただし、私のコードはハードコードされたキー「メッセージ」に対して機能しますが、受信者は複数のメッセージを受信するため、認証IDに基づいて異なるキーで各ユーザーを公開および購読したいのです

4

1 に答える 1

0

それはいいです!ユーザーが複数のメッセージを受信して​​いる場合は、1 つを無視できます:P

于 2015-10-06T11:50:13.063 に答える