1

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

当我使用 Edge(控制)启动呼叫时,由于某种原因 DTLS 握手失败,我打开了 wireshark 以查看是否正在执行任何 DTLS 消息但没有被“嗅探”(尽管这可能是一个 wireshark 问题)。如果我从 Edge(受控)回答,则连接有效(即使中间有网关)。

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

其他人有这个问题吗?什么可能造成这个问题?

谢谢..

4

1 回答 1

2

我找到了解决方案..

好吧,基本上我的网关是一个被动对等体,我以“自动”角色启动 DTLS 传输,并且由于边缘是“控制”,它会自动将其设置为“服务器”。所以基本上两端都是“服务器”,没有发送 DTLS 握手。将远程角色设置为“服务器”解决了这个问题:)

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

关于远程参数的更多信息可以在这里找到:

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

于 2016-01-18T15:36:52.607 回答