2016-12-19 17 views
0

私は問題がありますが、何日も調べても解決しません。 私はユーザーsocket.ioとnodejsにチャットするユーザーを行います。 私はユーザAです。アプリ上でリストのユーザBをクリックすると、ユーザAとBが同じ部屋(set roomname is (IdOfUserA)_(IdOfUserB))に参加することができます。 どうやって同じことをサーバー側で行うことができますか、私に手伝ってください。 ありがとうございました。サーバー側では2つのソケットを同じ部屋にチャット(socket.io)する方法

クライアント側で

socket.emit('chat-with-user-b', {userb : IdOfUserB}); 
socket.on('chat-with-me', function(roomID){ 
    // open tchat etc.. 
}); 

:私はこのような何かだろう擬似コードで

答えて

0

io.on("connection", function(socket){ 
    socket.on('chat-with-user-b', function(IdOfUserB){ 
     var roomID = IdOfUserB + '_' + socket.id; // create a unique room id 
     socket.join(roomID); // make user A join room 
     io.sockets[IdOfUserB].join(roomID); // make user B join room 
     io.sockets.in(roomID).emit('chat-with-me', roomID); // send join event to both. 
    }); 
}); 
+0

ありがとうございましたが、私はIOを理解していません.Sockets [withUser] .join(roomID)、withUserはクライアント上のIdOfUserBで、User Bのソケットを指定できますか? – imVutoan

+0

実際にはちょっと混乱していて、例を更新しました。希望するのは – fbhcf

+0

だからIdOfUserBはユーザBのsocket.idなのでしょうか? socket.emit( 'chat-with-user-b'、{userb:IdOfUserB})を実行するには、クライアント上のユーザBのsocket.idをどうすればよいですか。 – imVutoan

関連する問題