2

マルチユーザー通信アプリを実装しようとしています。ユーザーのソケットを彼のIDで識別したいので、ソケットのIDをユーザーのIDに設定できますか?

socket.id=user.userId;
4

4 に答える 4

3

これはあなたを助けるかもしれません

io.sockets.on('connection', function (socket) {    
    console.log("==== socket  ===");
    console.log(socket.id);
    socket.broadcast.emit('updatedid', socket.id);
});

クライアント側でソケットIDを保存できます。1-1メッセージ(プライベートチャット)が必要な場合は、更新されたソケットIDを使用します。このようなもの :

io.sockets.socket(id).emit('private message', msg, mysocket.id) 
于 2012-06-11T12:21:50.370 に答える
1

これは可能ですが、Node.jsやその他のフレームワークキーと衝突しないプロパティを使用してください

socket.myappsuperuserid = user.userId;
于 2012-05-17T11:17:55.813 に答える
1

ここ

クライアント側

var socket = io.connect();
     socket.on('connect', function () {
          console.log("client connection done.....");
          socket.emit('setUserId','random value');
});

サーバー側

io.sockets.on('connection', function (socket) {
       socket.on('setUserId',function(uId){
             socket.userId = uId;
        });
});

これは役立つかもしれません...

于 2012-05-17T11:37:18.490 に答える
0

ユーザーが接続すると、socket.ioでsocket.ioは一意のsocket.idを生成します。これは、基本的にランダムで一意の推測できないIDです。接続した後、socket.join('userId')を呼び出します。基本的にここでは、userIdを使用してこのソケットに部屋を割り当てます。次に、このユーザーに何かを送信したいときはいつでも、このio.to(userId).emit('my message'、'hey there?')のようにします。この助けを願っています。

于 2016-08-20T10:16:26.053 に答える