Chrome WebRTC over TCP

时间:2016-07-07 10:58:07

标签: google-chrome tcp webrtc chromium

我试图通过TCP使用WebRTC媒体,但我在ICE连接阶段遇到了一些有趣的问题。在进一步发展之前,了解我对UDP具有相同的设置并且一切正常都很重要。

在网关中,我们修改远程应答SDP以包含单个TCP候选(媒体端口也被修改为包含相同的端口):

a=candidate:1 1 tcp 1 <gw_ip> <gw_port> typ host tcptype passive generation 0

此外,我将属性设置发送为被动:

a=setup:passive

在Chrome上应用远程说明后几秒钟,我在网关上收到STUN BIND请求,我在回复绑定成功回复(我已经检查了交易ID和邮件完整性)他们似乎很好。)

在此简单的Chrome之后,不会继续进行ICE检查(两者都不是DTLS消息)。我已经启用了Chrome日志,看看是否发生了一些错误,并且我发现了一个有趣的输出:

  

&#34;忽略共享套接字上的STUN绑定响应消息&#34;

我已经看了一下chrome源代码,看来这是因为chrome正在使用共享套接字,但我无法理解它的原因。

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

经过深入调查后,我发现TCP流未在网关端正确解析。

此特定流使用长度框架机制,该机制未应用于入站/出站数据,因此会在流程管道上引发多个问题。

有关框架机制的更多信息,请参阅rfc5389: https://tools.ietf.org/html/rfc5389