0

我正在寻找一种方法来实现客户端到客户端的通信,而对等方不知道彼此的 IP 地址。对于已经支持该协议的客户端,使用带有 TURN 的 WebRTC(查看coturn )将是理想的。但是从TURN 规范中读取它指出:

客户端必须包含一个 XOR-PEER-ADDRESS 属性和一个 DATA 属性。XOR-PEER-ADDRESS 属性包含数据要发送到的对等体的传输地址。

因此,协议似乎规定拥有对等 IP。对我来说,这个属性最好是一个提供的(匿名)键,我可以将它映射到路由表中 TURN 服务器上的 IP。更新路由表将由信令服务器处理。

是否有支持这样的功能的东西,或者我应该计划自己编写客户端和 TURN 功能?在我的情况下,所有流量当然会通过 TURN 服务器进行路由。

4

1 回答 1

1

用户 coTURN 并将iceTransportPolicy选项设置为relay(默认为all),然后 peerConnection 将仅生成relay candidates(TURN)
因此媒体将仅通过 TURN 服务器流动。
并且对等方不会知道远程用户 IP(反射/主机)。

创建 peerConnection 为流动

var iceServers = [{"urls":["turn:TURN_IP:3478?transport=udp"],"username":"TURN_USERNAME","credential":"TURN_PASWD"}];
var config = {"iceServers": iceServers, "iceTransportPolicy": "relay"};
var constraints = [{"DtlsSrtpKeyAgreement": true}];
pc = new RTCPeerConnection(config, constraints);
于 2017-06-28T13:16:04.047 回答