假设我在 Wifi 上有一个已建立的 PeerConnection 。如何在不中断 session 的情况下优雅地将网络切换到移动设备?
我显然可以停止一切并重新协商 session ,但我不认为这是解决方案。
还有 iceConnectionReceivingTimeout 和 iceBackupCandidatePairPingInterval 参数似乎是专门为这种情况设计的,但不幸的是,除了 this post 之外,我找不到任何关于如何使用它们的提示。显然只是设置它们没有任何作用。
Best Answer-推荐答案 strong>
如前所述,你不能。但是,如果您使用的是来自 chromium 的最新 WebRTC,则有一种方法可以最大限度地减少延迟。
最快的可用选项是捕获网络更改事件并通过在同一 RTCPeerConnection 中重新创建 offer 并使用 iceRestart: true 标记并发送给参与者。
https://w3c.github.io/webrtc-pc/#dom-rtcofferoptions
这将通过为 ICE 用户名和密码 fragment - ufrag /pwd 生成和使用新值来自动触发重新协商。
NOTE
Performing an ICE restart is recommended when iceConnectionState
transitions to "failed". An application may additionally choose to
listen for the iceConnectionState transition to "disconnected" and
then use other sources of information (such as using getStats to
measure if the number of bytes sent or received over the next couple
of seconds increases) to determine whether an ICE restart is
advisable.
关于android - 如何在 WebRTC 中优雅地在网络之间切换?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/41098670/
|