我正在尝试使用Edge的ORTC,以便与其他网络浏览器进行实时通信。我已成功使用点对点连接完成了这项工作,但在中间添加网关之后我遇到了问题。
当我使用Edge(控制)启动呼叫时,由于某种原因DTLS握手失败,我打开wireshark以查看是否有任何DTLS消息正在执行但没有被“嗅探”(这可能是一个wireshark问题虽然)。如果我从Edge(受控)回答连接有效(即使中间有网关)。
重要的是要注意ICE连接在每种情况下都已成功建立,似乎由于某种原因,Edge没有启动DTLS握手,我无法理解什么是触发点(我甚至得到了“检查” “dtls传输对象的”ondtlsstatechange“事件的状态。大约30秒后,失败的事件会触发!
其他人有这个问题吗?有什么可以创造这个问题?
谢谢..
答案 0 :(得分:2)
我找到了解决方案..
嗯,基本上我的网关是一个被动的同伴,我开始使用角色" auto"开始DTLS传输,因为Edge是"控制"它会自动将其设置为"服务器"。所以基本上两端都是"服务器"并且没有发送DTLS握手。将远程角色设置为" server"解决了这个问题:)
remoteDtlsParameters.role = "server";
dtlsTransport.start(remoteDtlsParameters);
有关远程参数的更多信息,请访问:
https://msdn.microsoft.com/en-us/library/mt502488(v=vs.85).aspx