使用WebRTC会话的眩光控制分辨率,在会话启动或回答时抓取媒体(getusermedia)。
会话的两侧(A侧和B侧)同时发起会话,导致双方在期待SDP应答时收到SDP优惠。
我使用的解决方案是为每个信令通道分配一个唯一的令牌(即,A侧和B侧具有不同的令牌),并且与ISUP类似地使用以执行眩光控制(例如,较低或较高侧令牌)获胜)。
我使用的实际机制似乎有效,它基于允许两个较低令牌继续会话启动并忽略远程SDP Offer和远程端创建新PeerConnection的一方。然后在新的PeerConnection上处理收到的报价,并在准备好新PC时附加其介质。随后处理来自允许发起方的ICE候选人。
问题是 - 抓住新PC处理收到的报价是否有任何不利或危险? (失败方试图启动的原始PC被丢弃,我假设在某些时候收集了垃圾)。
所以可能(虽然我不确定)有问题的是我目前没有删除在SDP要约之后到达的ICE候选人,如果这些ICE候选人仍然有效,则会被忽略。
但是对此的任何想法都非常感激。