WebSocket信令服务器将报价发送给错误的用户

时间:2019-04-02 19:56:16

标签: node.js websocket webrtc

我正在为许多视频会议设置新的WebSocket信令服务器,但是当我有一个以上的用户登录到该服务器时,它只会向一个用户发送报价。

有我的客户端版本关闭代码: 这是一个数组,我存储应该连接的用户

       usersList[i] = new User(userList[i], new                                      
                      RTCPeerConnection(configuration))

这是用户的类

               class User {
                  constructor(Name,Connection){
                  this.Name = Name;
                  this.Connection = Connection;
                  }
                  get getName(){
                     return this.Name;
                  }
                  get getConnection(){
                     return this.Connection;
                  }
                }

我正在向服务器发送报价,name是使用的用户名  aplication和otherUser是用户的名称,服务器应联系

         for(var j = 0; j < usersList.length ; j++){
            if (usersList[j] != null) {
                var helpUser = usersList[j];
                console.log("Name:---", helpUser.Name);
                helpUser.getConnection.createOffer(function (offer) {
                    send({
                        type: "offer",
                        offer: offer,
                        name: name,
                        otherUser: helpUser.Name
                    });
                    helpUser.getConnection.setLocalDescription(offer);
                }, function (error) {
                    alert("Error when creating an offer");
                });
            }
        }

有服务器端代码  提供消息类型后,服务器运行此功能  用户是服务器上所有相关用户的列表

            case "offer":
            var conn = users[data.otherUser];

            if (conn != null) {
                //setting that UserA connected with UserB
                connection.otherName = data.otherUser;
                console.log("Sending offer to", data.otherUser);
                console.log("--");
                console.log(connection.name);
                console.log("--");

                sendTo(conn, {
                    type: "offer",
                    offer: data.offer,
                    name: connection.name
                });
            }

例如,当我登录用户“ a”和“ b”时,一切正常。然后,用户“ c”登录并希望向用户“ a”和“ b”发出信号。在客户端控制台中,输出正常,在console.log之后看起来像这样: 名称:-a 名称:-b

但是在服务器端,console.log之后的输出看起来像这样:

将报价发送到b

c

将报价发送到b

c

服务器端的输出应如下所示:

将报价发送给

c

将报价发送到b

c

感谢您的帮助。 :)

0 个答案:

没有答案