Javascript Socket.io广播到Socket.io v.0.9.13中不工作的房间

Javascript Socket.io广播到Socket.io v.0.9.13中不工作的房间,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,不是在攻击客户端。我只能看到以下消息: socket.broadcast.to(newroom).emit('updatechat', 'SERVER', socket.username+' has joined this room'); 我是否对socket.join()做了什么错误 我还尝试为广播事件指定一个不同的名称,而不是updateActivity,但它也不起作用 日志输出中根本没有提到广播发射 问题更新: 我找到了一个解决方案,如果我将broadcast.to()替换为以下代码段,

不是在攻击客户端。我只能看到以下消息:

socket.broadcast.to(newroom).emit('updatechat', 'SERVER', socket.username+' has joined this room');
我是否对
socket.join()
做了什么错误

我还尝试为广播事件指定一个不同的名称,而不是
updateActivity
,但它也不起作用

日志输出中根本没有提到广播发射

问题更新: 我找到了一个解决方案,如果我将broadcast.to()替换为以下代码段,它将起作用:

socket.emit('updateActivity', 'SERVER', 'you have CONNECTED to '+ socketEntity.roomName);
但是我不知道现在为什么会是这样……因此,上面的io.sockets.in()的
room
参数与字符串
socketEntity.roomId
不一样吗

原始代码:

服务器: 客户: HTML:
    JavaScript:
    $(文档).ready(函数(){
    var socketEntity={roomId:sampleRmId,roomName:“样本室”}
    插座发射('joinRoom',插座实体);
    socket.on('updateActivity',函数(用户名、数据){
    $(“#活动列表”)。前置(“
  • ”); }); })
    socket。广播
    会将消息发送到除正在调用该消息的客户端之外的所有其他客户端

    socket.emit
    仅发送到该特定客户端

    io.sockets.emit
    发送到所有客户端

    socket.get(socketEntity.roomId, function (error, room) {
       io.sockets.in(room).emit('updateActivity', 'SERVER', 'you -joined- this group '+ socketEntity.roomName);
    });
    
    io.sockets.on ('connection', function (socket){
        socket.on('joinRoom', function(socketEntity){
            socket.join(socketEntity.roomId);
            socket.emit('updateActivity', 'SERVER', 'you have CONNECTED to '+ socketEntity.roomName);
            socket.broadcast.to(socketEntity.roomId).emit('updateActivity', 'SERVER', 'you -joined- this room'+ socketEntity.roomName);
        });
    });
    
    <ul id="activityList" class="dropdown-menu"></ul>
    
    $(document).ready(function(){
        var socketEntity = {roomId:sampleRmId, roomName: "sample room"}
        socket.emit('joinRoom', socketEntity);
    
    
        socket.on('updateActivity', function (username, data){
            $('#activityList').prepend('<li><a href="#"><div>'+ data +'</div></a></li>');
        });
    })