グループと同じ機能を実現しようとしていますが、ユーザーは同時に複数のルームに接続します。ソケットIoユーザー2つのルームに接続すると、同じウィンドウ内の両方のルームからメッセージを取得します
のは、それぞれの部屋AとB.私はsocket.broadcast.to(A).emit
を行うと、両方のユーザーが、それらの両方が別の部屋に接続されているにもかかわらず、同じウィンドウにメッセージを取得しているに接続された2人のユーザー1と2を、想像してみましょう
私はユーザーがデータベースから接続されているgroupsListを取得します。私は
for(var i=0;i<groupsList.length;i++){
var groupName = groupsList[i].Id.toString();
socket.join(groupName);
}
メッセージフォームクライアント側がクライアント側
Iに
socket.on('send-Group-Message',function(data){
socket.broadcast.to(groupIdString).emit('group_message',{msg:message,date:Datesent,senderUsername:socket.nickname,senderDisplayName:displayName})
socket.emit('myGroup_message',{msg:message,date:Datesent,senderDisplayName:displayName});
});
その後、サーバ側で
socket.emit('send-Group-Message', {msg:messageBox.val(),"groupId":$("#connectedGroup").val()});
を使用して送信されるのgroupIdを使用していますどのグループがthに関連付けられているかを調べることができますeメッセージをクライアント側から送信しますが、これが正しい方法であるかどうかはわかりません。
どうすれば部屋をきれいに分離できますか?
私はできるだけ壊れた英語を修正しました。悲しいことに、コード*サンプル*なしであなたを助ける方法はありません。具体的にはどのように客室を管理し、どのようにメッセージを送信しますか? – DrakaSAN
コードサンプルを追加しました –