我正在通过 DataChannels(CoffeeScript,对不起 JS 家伙)构建(又一个)手动信令 WebRTC 聊天。它在本地连接中工作正常,但不能通过 NAT 后面的互联网(不幸的是,我还不能尝试 NATless)。
我不想维护一个 TURN 服务器,但是如果只有一个对等点必须可以从 Internet 公开访问才能使设置工作,我也可以。因为我是唯一一个拥有可访问机器的人,所以我们需要我主持一个 TCP 连接。在 Firefox 中没有报告 TCP 候选,所以我猜 ICE-TCP 尚不支持。
在 Chrome 上,查看 SDP 提供/答案,STUN 服务器正确识别了两个对等方的公共 IP 并添加了每个服务器反射 UDP 候选(见下面的第 10 行),但没有TCP 服务器反射候选,因此连接永远不会成功。还包括一个 TCP 候选(参见下面的第 9 行),但它只是一个主机候选。
这是一个示例 SDP 报价(我的公共 IP 是 88.88.88.88):
01. v=0
02. o=- 7452583715680269460 2 IN IP4 127.0.0.1
03. s=-
04. t=0 0
05. a=msid-semantic: WMS
06. m=application 50816 DTLS/SCTP 5000
07. c=IN IP4 88.88.88.88
08. a=candidate:864190085 1 …Run Code Online (Sandbox Code Playgroud)