我正在使用 webRTC 构建一个支持音频通话的系统。它的工作原理如下:
- 用户 A createOffer,然后setLocalDescription与offer
- 用户 B receiveOffer,然后setRemoteDescription与offer
- 用户 B createAnswer,然后setLocalDescription与answer
- 用户 A receiveAnswer,然后setRemoteDescription与answer
问题是,A收到B的答复后,当A这样做时setRemoteDescription(answer),出现以下错误:
未捕获(承诺中) DOMException:无法设置远程应答 sdp:无法下推传输描述:无法为通道设置 SSL 角色。
我不知道为什么会出现这个错误。我尝试用谷歌搜索它,但到目前为止还没有运气。任何帮助,将不胜感激 !
这似乎确实是Firefox 的一个错误。
总之,正在发生的事情是:
- Firefox 提供actpass
- Chrome 答案active。这会将 Chrome 建立为 DTLS 客户端,将 Firefox 建立为 DTLS 服务器。
- Chrome 重新提供, with active(因为规范是这么说的,或者至少我们长期以来是这样解释的)
- Firefox 提供 with active,但具有相同的 DTLS 指纹。Chrome 不喜欢这样;它被解释为尝试将 DTLS 角色从 更改server为client,而不创建新的关联。
为了解决这个问题,我所做的是:确保提供/答案方向保持一致。这意味着,如果 Firefox 生成初始报价,它也会生成所有后续报价。我不确定这种做法有多常见,但它可能会避免很多互操作错误。
更详细的讨论:https://groups.google.com/forum/#!topic /discuss-webrtc/gsw3OEAwNKo
| 归档时间: |
|
| 查看次数: |
6266 次 |
| 最近记录: |