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

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

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

有人遇到这个问题吗?是什么造成了这个问题?

谢谢..

最佳答案

我找到了解决方案。

好吧,基本上我的网关是被动对等体,我以角色“ auto”开始DTLS传输,并且由于Edge是“控制”者,因此它自动将其设置为“服务器”。因此,基本上两端都是“服务器”,并且没有发送DTLS握手。将远程角色设置为“服务器”可以解决此问题:)

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


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

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

关于javascript - 边缘DTLS握手无法完成(ORTC),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34854724/

10-11 23:29