【发布时间】:2016-10-23 04:41:53
【问题描述】:
我正在尝试实现与群组相同的功能,其中用户一次连接到多个房间。
假设两个用户 1 和 2,分别连接到房间 A 和 B。当我执行 socket.broadcast.to(A).emit 时,两个用户都在同一个窗口上收到消息,即使他们都连接到不同的房间
我得到 groupsList 用户是从数据库连接的。我正在使用 groupId
for(var i=0;i<groupsList.length;i++){
var groupName = groupsList[i].Id.toString();
socket.join(groupName);
}
消息表单客户端发送使用
socket.emit('send-Group-Message', {msg:messageBox.val(),"groupId":$("#connectedGroup").val()});
在服务器端
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.on('group_message', function (data) {
chat.append("<div class=\"row\" ><span class='recivedMessage'><div class=\"alert alert-info textWrap\"><b>"+data.senderDisplayName+": </b>"
+ data.msg + "<br><span class=\"date\">"+ data.date.toString() +"</span></div></span></div>");
});
我可以从客户端检查哪个组与消息相关联,但我不确定这是否是正确的方法。
我怎样才能干净地分隔房间?
【问题讨论】:
-
我尽可能地修复了损坏的英语。遗憾的是,如果没有代码示例,就无法为您提供帮助,特别是您如何管理房间以及如何发送消息?
-
添加代码示例
标签: node.js sockets websocket socket.io