问题标签 [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.
javascript - 无法设置远程应答 sdp:在错误状态下调用:STATE_INPROGRESS
我在 WebRTC 和 WebSockets 上进行多用户视频聊天。当 2 个用户连接时一切正常,但当第 3 个用户连接第一个视频时消失,第一个和第三个用户之间的新视频建立。
错误:
“在错误状态下调用:STATE_INPROGRESS”
和
“错误处理 ICE 候选”
请指教我做错了什么。提前致谢!
这是我的代码:
这是服务器端:
webrtc - “iceConnectionState”是“失败”,没有任何错误
浏览器: Chrome 62.0.3202.94,(64 位)
操作系统: Ubuntu 16.04
我正在尝试创建数据连接。几个月前我用这段代码做过这个,但现在我不能让它工作。问题是,当我用 调用pc.setRemoteDescription
时answer
,iceConnectionState
从new
tochecking
到failed
状态,之后什么也没有发生(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
我错过了什么?
ios - 在 iOS webRTC 对等连接中不允许移动数据连接上的音频和视频,但在 wifi 连接上工作正常
调试控制台上显示的错误:
块调用:没有有效的 RTCReporting 并且会话已启动。
ios - IOS 中的 WebRTC 视频和音频不适用于 3G / 4G 但适用于 WIFI
我正在尝试在通过 3g/4g 连接的 iOS 中连接 WebRTC 视频和音频时出现错误,但在 WiFi 网络上工作正常。
并在找到对等连接后出现错误
[carc] CAReportingClient.mm:320:-[CAReportingClient sendMessage:category:type:reporters:]_block_invoke: 操作无法完成。没有有效的 RTCReporting 并且会话已启动
webrtc - WebRtc peerConnection 在设置本地描述时失败
在向对等方发送报价时设置本地描述时,我面临以下错误:
会话错误描述:
它仅出现在 Chrome 中,而不是在控制台中没有任何内容的 Firefox 中。显然对等点之间的连接没有建立。我只想使用以下设置更新音频部分:
因此查找 m=audio 并仅替换有效负载值。与保持原样的视频无关。
任何想法将不胜感激。
谢谢
javascript - 具有多个对等点的 RTCPeerConnection API
我构建了一个复杂的逻辑代码,以便使用 RTCPeerConnection API 在超过 2 个对等方之间进行群聊。
所发生的模拟如下:
假设我们有 3 个对等方 A、B 和 C,从 A 到 B 以及从 A 到 C 创建的连接是正常的并且工作正常,但是当 B 尝试连接 C 时会出现问题,这使得连接 AC 断开
从技术上讲:在连接中,AB和ACiceConnectionState
标志完成,但是当B连接到C时,AC连接iceConnectionState
标志变为断开连接,然后再次变为检查并仍然处于该状态。我不知道为什么会发生这种中断以及如何解决它。
很抱歉我不能把代码放在这里,因为它非常复杂和庞大
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()函数:
我将非常感谢任何建议!
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
而是显示localDescription
to beoffer
和currentLocalDescription
type is answer
。
提前致谢。
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 无法发送视频报价,因此应用程序冻结并崩溃。音频仍然可以正常工作(就在崩溃前几秒钟)。
如果我们尝试在两个桌面客户端之间进行通信,一切都会像魅力一样。
将不胜感激一些帮助来解决这个问题。