javascript - 修改MDN教程实现WebRTC一对多调用
问题描述
现在是 2020 年 8 月,我是 WebRTC 的新手。我已按照此处的说明进行操作,并成功地进行了仅视频和音频的调用,并对代码进行了一些添加。
我遇到的麻烦是修改此代码以进行一对多甚至多对多的呼叫 - 仅限视频和音频。
到目前为止,我已经开始用 [i] 替换 [0]:
function handleTrackEvent(event) {
document.getElementById("received_video").srcObject = event.streams[0];
document.getElementById("hangup-button").disabled = false;
}
function handleTrackEvent(event, i) {
document.getElementById("received_video").srcObject = event.streams[i];
document.getElementById("hangup-button").disabled = false;
}
并在以下位置启动 i:
function handleUserlistMsg(msg) {
var i = 0;
var listElem = document.querySelector(".userlistbox");
while (listElem.firstChild) {
listElem.removeChild(listElem.firstChild);
}
msg.users.forEach(function(username) {
var item = document.createElement("li");
item.appendChild(document.createTextNode(username));
item.addEventListener("click", invite(event, i), false);
listElem.appendChild(item);
i++;
});
}
我在控制台日志中遇到的问题是:
[10:00:17 AM] Error InvalidStateError: Failed to execute 'setRemoteDescription'
on 'RTCPeerConnection': Failed to set remote answer sdp: Called in wrong state: kStable
对我来说,这表明我已经与同伴建立了联系
那么,如何建立多个连接一个呼叫者发起多个参与者?
解决方案
我对这个问题的解决方案是通过废弃原始 webRTC 并使用https://jitsi.org 这个软件在我自己的服务器上是私有的、可定制的和可靠的。
推荐阅读
- html - 使用 CSS,有没有办法确定 HTML 元素是否具有属性集?
- typescript - ngrx 8 createAction 语法
- python - 如何从python中的列表中获取随机元素?
- sql - 具有多个字段的搜索函数存储过程未返回预期结果
- python - 如何连接到托管在私有树莓派服务器上的远程 MySQL 数据库?
- postgresql - 如何在 AWS Aurora postgres 中终止长时间运行的查询
- css - 当用户在功能性反应组件中使用触摸屏时,用按钮隐藏 div
- r - 与 R 中的条件重复
- python-3.x - RNNLanguageModel 的 forward 方法的作用是什么?
- docker - GitLab CD 工作流将 Docker 应用程序部署到登台和生产中