问题标签 [peer-connection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
2995 浏览

javascript - 无法设置远程应答 sdp:在错误状态下调用:STATE_INPROGRESS

我在 WebRTC 和 WebSockets 上进行多用户视频聊天。当 2 个用户连接时一切正常,但当第 3 个用户连接第一个视频时消失,第一个和第三个用户之间的新视频建立。

错误:

“在错误状态下调用:STATE_INPROGRESS”

“错误处理 ICE 候选”

请指教我做错了什么。提前致谢!

这是我的代码:

这是服务器端:

0 投票
1 回答
5641 浏览

webrtc - “iceConnectionState”是“失败”,没有任何错误

浏览器: Chrome 62.0.3202.94,(64 位)

操作系统: Ubuntu 16.04

我正在尝试创建数据连接。几个月前我用这段代码做过这个,但现在我不能让它工作。问题是,当我用 调用pc.setRemoteDescriptionanswericeConnectionStatenewtocheckingfailed状态,之后什么也没有发生(Chrome 到 Chrome 的连接)

当我在一台机器(两个单独的浏览器选项卡)上运行此代码时,一切正常。因此,当两个端点都在同一个网络上时,没有问题。

这是连接卡住时的快照(不同网络中的端点):

提供:

回答:

这是代码:

有两种处理 ICE 候选的方法——涓流方式和非涓流方式。这是它们如何不同的解释。基本上,以一种非涓涓细流的方式,ICE 候选人不是单独发送的,而是聚集在一起并在一个包裹中发送一个报价/答案。我在这里使用非涓流方法。

这是来自 chrome://webrtc-internals/ 的转储

编辑

当我在 Chrome 和 Firefox 之间建立连接时,我收到一个错误(在 Firefox 中):

ICE 失败,添加 TURN 服务器并查看 about:webrtc 了解更多详情

我在这里测试过的两台机器都可以访问 Stun 服务器,因此候选生成没有问题。我不确定它是否相关,但答案的srflx候选端口不匹配(24239!== 53848)。正常吗?

a=candidate:3180321211 1 udp 1686052607 145.255.177.124 24239 typ srflx raddr 192.168.1.104 rport 53848 generation 0 network-id 1 network-cost 10

我错过了什么?

0 投票
0 回答
524 浏览

ios - 在 iOS webRTC 对等连接中不允许移动数据连接上的音频和视频,但在 wifi 连接上工作正常

调试控制台上显示的错误:

块调用:没有有效的 RTCReporting 并且会话已启动。

0 投票
1 回答
1747 浏览

ios - IOS 中的 WebRTC 视频和音频不适用于 3G / 4G 但适用于 WIFI

我正在尝试在通过 3g/4g 连接的 iOS 中连接 WebRTC 视频和音频时出现错误,但在 WiFi 网络上工作正常。

并在找到对等连接后出现错误

[carc] CAReportingClient.mm:320:-[CAReportingClient sendMessage:category:type:reporters:]_block_invoke: 操作无法完成。没有有效的 RTCReporting 并且会话已启动

0 投票
0 回答
2067 浏览

webrtc - WebRtc peerConnection 在设置本地描述时失败

在向对等方发送报价时设置本地描述时,我面临以下错误:

会话错误描述:

它仅出现在 Chrome 中,而不是在控制台中没有任何内容的 Firefox 中。显然对等点之间的连接没有建立。我只想使用以下设置更新音频部分:

因此查找 m=audio 并仅替换有效负载值。与保持原样的视频无关。

任何想法将不胜感激。

谢谢

0 投票
1 回答
2212 浏览

javascript - 无法创建 PeerConnection,异常:无法构造“RTCSessionDescription”:参数 1(“descriptionInitDict”)不是对象

在此处输入图像描述
前端代码:-

后端代码:

我收到此错误:-无法创建 PeerConnection,异常:无法构造“RTCSessionDescription”:参数 1(“descriptionInitDict”)不是对象。

还得到 未捕获(承诺)DOMException:无法设置远程报价 sdp:在错误状态下调用:kHaveLocalOffer

0 投票
0 回答
159 浏览

javascript - 具有多个对等点的 RTCPeerConnection API

我构建了一个复杂的逻辑代码,以便使用 RTCPeerConnection API 在超过 2 个对等方之间进行群聊。

所发生的模拟如下:

假设我们有 3 个对等方 A、B 和 C,从 A 到 B 以及从 A 到 C 创建的连接是正常的并且工作正常,但是当 B 尝试连接 C 时会出现问题,这使得连接 AC 断开

从技术上讲:在连接中,AB和ACiceConnectionState标志完成,但是当B连接到C时,AC连接iceConnectionState标志变为断开连接,然后再次变为检查并仍然处于该状态。我不知道为什么会发生这种中断以及如何解决它。

很抱歉我不能把代码放在这里,因为它非常复杂和庞大

0 投票
1 回答
1074 浏览

webrtc - 当我调用 peerconnection->Close() 时,WebRtc Native-Crashed

如何关闭或破坏 PeerConnectionInterface 对象?当我试图这样做时它崩溃了。

我有一个像这样声明的对象: rtc::scoped_refptr<webrtc::PeerConnectionInterface> _peerConnection;

在我通过工厂创建 PeerConnectionInterface 后它工作正常。

但是,当会话结束时,我尝试调用 _peerConnection->Close(); 程序崩溃了。

而且我也尝试调用 _peerConnection.release()->Release(); 也崩溃了。

我在 WebRtc 的源代码的 PeerConnection.cc 中打印日志,发现它在这里崩溃了,在 Close() 函数和 ~PeerConnection() 函数中:

webrtc_session_desc_factory_.reset(); //PeerConnection.cc

声明是 std::unique_ptr<WebRtcSessionDescriptionFactory> webrtc_session_desc_factory_;

于是我继续登录WebRtcSessionDescriptionFactory.cc,~WebRtcSessionDescriptionFactory()函数。在这个函数中崩溃:FailPendingRequests()。

进入FailPendingRequests()函数:

我将非常感谢任何建议!

0 投票
1 回答
9203 浏览

javascript - 如何在 Chrome 中为 WebRTC 调用者设置远程描述而不会出错?

我希望逻辑没有缺陷。

第 1 步:来电者创建报价

第 2 步:调用者设置 localDescription

第三步:调用者将描述发送给被调用者

//------------------------------------------------ ------//

第四步:被调用者接收offer sets remote description

第 5 步:被调用者创建答案

第六步:被叫设置本地描述

第 7 步:被调用者将描述发送给调用者

//------------------------------------------------ ------//

第 8 步:呼叫者收到应答并设置远程描述

这是上面的代码

现在此代码在执行第 8 步时抛出错误

DOMException:无法在“RTCPeerConnection”上执行“setRemoteDescription”:无法设置远程报价 sdp:在错误状态下调用:kHaveLocalOffer

DOMException:无法在“RTCPeerConnection”上执行“addIceCandidate”:处理 ICE 候选者时出错

尝试调试但未发现逻辑或代码中的任何缺陷。注意到该pc对象具有的一件奇怪的事情,localDescription并且currentLocalDescription我认为创建答案的被调用者必须同时具有描述类型 to beanswer而是显示localDescriptionto beoffercurrentLocalDescriptiontype is answer

在此处输入图像描述 我不知道它是否应该像我初学者那样表现得那样。

提前致谢。

0 投票
0 回答
211 浏览

uwp - WebRTC 问题 - Hololens 无法发送视频报价

我们从这个项目 ( https://github.com/webrtc-uwp/PeerCC/tree/Mosa/20180320-peercc-unity )开始开发了一个完整的 webRTC UWP 环境。
我们开发了一个桌面应用和一个 HoloLens 应用来相互通信。一切都很好,直到我们迁移到自定义服务器(在本例中为 Xirsys)。

然后,我们修改了 Signaling 脚本以使其适应新服务器,该服务器使用 MessageWebSocket 而不是我们之前使用的 StreamSocket 以及示例演示中包含的 peerccconnection_server.exe。

目前的情况是:

  • 桌面连接到服务器并等待对等点。

  • Hololens 连接到服务器并添加到可用对等方列表中。

  • 桌面现在可以调用 Hololens 并开始通信。

Hololens 应该同时发送音频和视频,而桌面只发送音频。

现在的实际问题是 hololens 无法发送视频报价,因此应用程序冻结并崩溃。音频仍然可以正常工作(就在崩溃前几秒钟)。
如果我们尝试在两个桌面客户端之间进行通信,一切都会像魅力一样。

将不胜感激一些帮助来解决这个问题。