我正在尝试使用Edge的ORTC,以便与其他浏览器进行实时通信。我使用点对点连接成功地完成了这项工作,但是在中间添加了一个网关后,我遇到了问题。
当我使用Edge (控制)启动调用时,由于某种原因DTLS握手失败,我打开wireshark查看是否执行了任何DTLS消息,但没有一个消息被“嗅探”(不过这可能是wireshark问题)。如果我从边缘(控制)回答,连接工作(甚至与网关之间)。
需要注意的是,ICE连接在每种情况下都是成功建立的,似乎是由于Edge没有启动DTLS握手,并且我不知道触发点是什么(我甚至得到dtls传输对象的"ondtlsstatechange“事件的”检查“状态)。大约30秒后,失败事件触发!
有人有这个问题吗?是什么造成了这个问题?
谢谢..
发布于 2016-01-18 15:36:52
我找到了解决办法..。
基本上,我的网关是一个被动的对等体,我使用角色"auto“启动DTLS传输,而且由于Edge是”控制“,它自动将其设置为”服务器“。因此,基本上两端都是“服务器”,不发送DTLS握手。将远程角色设置为"server“解决了以下问题:)
remoteDtlsParameters.role = "server";
dtlsTransport.start(remoteDtlsParameters);有关远程参数的更多信息可以在这里找到:
https://msdn.microsoft.com/en-us/library/mt502488(v=vs.85).aspx
https://stackoverflow.com/questions/34854724
复制相似问题