22

別のクライアントで受信した別のメッセージに基づいて選択された特定のクライアントにメッセージを「送信」したいのですが、どうすればよいですか?

各クライアントを自分の「部屋」に入れて放送することを考えています。より良い方法はありますか?

4

4 に答える 4

36

socket.ioバージョン1.0以降の更新

io.to(socketid).emit('message', 'whatever');

古いバージョンの場合:

各クライアントをプロパティとしてオブジェクトに格納できます。次に、メッセージに基づいてソケットを検索できます。

var basket = {};

io.sockets.on('connection', function (socket) {
  socket.on("register", function(data) {
    basket[data.nickname] = socket.id;
  });
  socket.on("privmessage", function(data){
    var to = basket[data.to];
    io.sockets.socket(to).emit(data.msg);
  });
});

テストされていません...しかし、それはあなたにアイデアを与えるはずです

于 2012-04-11T17:47:32.037 に答える
17

socket.io バージョン 1.0 の場合:

io.to(socketid).emit('message', 'whatever');
于 2014-07-13T11:14:14.920 に答える