我正在为许多视频会议设置新的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之后的输出看起来像这样:
服务器端的输出应如下所示:
感谢您的帮助。 :)