Edge DTLS 握手未能完成 (ORTC)

Edge DTLS Handshake fails to complete (ORTC)

我正在尝试使用 Edge 的 ORTC 与其他网络浏览器进行实时通信。我已经使用点对点连接成功地完成了这项工作,但在中间添加网关后我遇到了问题。

当我使用 Edge(控制)开始呼叫时,由于某种原因 DTLS 握手失败,我打开 wireshark 以查看是否正在执行任何 DTLS 消息,但 none 是 "sniffed" (虽然这可能是一个 wireshark 问题)。如果我从 Edge(受控)应答,则连接正常(即使中间有网关)。

重要的是要注意在每种情况下都成功建立了 ICE 连接,似乎由于某种原因 Edge 没有启动 DTLS 握手而且我不明白触发点是什么(我什至得到了"checking" dtls 传输对象的 "ondtlsstatechange" 事件的状态)。大约 30 秒后,失败事件触发!

其他人遇到这个问题?是什么造成了这个问题?

谢谢..

我找到了解决方案..

好吧,基本上我的网关是一个被动对等点,我开始使用角色 "auto" 进行 DTLS 传输,并且由于边缘是 "controlling",它会自动将其设置为 "server".所以基本上两端都是 "servers" 并且没有发送 DTLS 握手。将远程角色设置为 "server" 解决了问题:)

remoteDtlsParameters.role = "server";
dtlsTransport.start(remoteDtlsParameters);

可以在此处找到有关远程参数的更多信息:

https://msdn.microsoft.com/en-us/library/mt502488(v=vs.85).aspx