大型企业、医院、高校、银行等安全需求较高的机构会部署防火墙将办公环境与外网隔离开来,保护内部信息安全。
为避免这些企业用户因防火墙无法使用 Agora 的服务,Agora 提供云代理服务。
Agora 云代理的工作原理如下:
自 Web SDK v3.4.0 起,Agora 优化了云代理架构,进一步加强了有网络访问限制的环境中 SDK 的连通性,同时支持限定访问区域。如果你使用的是 Web SDK v3.4.0 或以上版本(不包含 4.x),参考以下步骤使用云代理服务:
联系 sales@agora.io 或技术支持申请开通云代理服务,并提供以下信息:
成功开通后,在加入频道前调用 startProxyServer
方法打开云代理功能,并将 type
参数设为 3
,然后测试是否能正常实现音视频通话或直播。
var client = AgoraRTC.createClient({mode: 'live',codec: 'vp8'});
// 开启云代理
client.startProxyServer(3);
// 加入频道
client.init(key, function() {
client.join(channelKey, channel, null, function(uid) {
/** ... **/
})
})
如果需要关闭代理,请在离开频道后调用 stopProxyServer
。
// 开启云代理并加入频道后
/** ... **/
// 离开频道
client.leave();
// 关闭云代理服务
client.stopProxyServer();
// 重新加入频道
client.join(channelKey, channel, null, function(uid) {
/** ... **/
}
如果你使用的是 Web SDK v2.5.1 至 v3.3.1,参考以下步骤使用云代理服务:
联系 sales@agora.io 或技术支持申请开通云代理服务,并提供以下信息:
将以下测试 IP 及端口添加到企业防火墙的白名单。
源地址为集成了 Web SDK 的客户端。
国内测试
协议 | 目标地址 | 端口 | 端口用途 |
---|---|---|---|
TCP | 150.138.153.78 | 443, 4000 3433 - 3460 |
消息数据传输 媒体数据交换 |
TCP | 47.74.211.17 | 443 | 边缘节点通信 |
TCP | 52.80.192.229 | 443 | 边缘节点通信 |
TCP | 52.52.84.170 | 443 | 边缘节点通信 |
TCP | 47.96.234.219 | 443 | 边缘节点通信 |
UDP | 150.138.153.78 | 3478 - 3500 | 媒体数据交换 |
国外测试
协议 | 目标地址 | 端口 | 端口用途 |
---|---|---|---|
TCP | 23.236.115.138 | 443, 4000 3433 - 3460 |
消息数据传输 媒体数据交换 |
TCP | 69.28.51.149 | 443, 4000 3433 - 3460 |
消息数据传输 媒体数据交换 |
TCP | 164.52.87.25 | 443, 4000 3433 - 3460 |
消息数据传输 媒体数据交换 |
TCP | 47.74.211.17 | 443 | 边缘节点通信 |
TCP | 52.80.192.229 | 443 | 边缘节点通信 |
TCP | 52.52.84.170 | 443 | 边缘节点通信 |
TCP | 47.96.234.219 | 443 | 边缘节点通信 |
UDP | 23.236.115.138 | 3478 - 3500 | 媒体数据交换 |
UDP | 164.52.87.25 | 3478 - 3500 | 媒体数据交换 |
UDP | 69.28.51.149 | 3478 - 3500 | 媒体数据交换 |
在加入频道前调用 startProxyServer
方法打开云代理功能,测试是否能正常实现音视频通话或直播。
var client = AgoraRTC.createClient({mode: 'live',codec: 'vp8'});
// 开启云代理
client.startProxyServer();
// 加入频道
client.init(key, function() {
client.join(channelKey, channel, null, function(uid) {
.......
})
})
测试完成后,Agora 会为你部署云代理服务正式环境,并提供相应的 IP 和端口。将 Agora 提供的 IP 和端口添加到企业防火墙的白名单。
如果需要关闭云代理,请在离开频道后调用 stopProxyServer
。
// 开启云代理并加入频道后
...
// 离开频道
client.leave();
// 关闭云代理服务
client.stopProxyServer();
// 重新加入频道
client.join(channelKey, channel, null, function(uid) {
...
}
startProxyServer
和 stopProxyServer
必须在加入频道前或离开频道后调用。setProxyServer
和 setTurnServer
两个方法给用户自行部署代理服务器。这两个方法与 startProxyServer
不可同时调用,调用了其中任一个方法,再调用 startProxyServer
会报错,反之亦然。stopProxyServer
会关闭所有代理服务,包括通过 setProxyServer
和 setTurnServer
设置的代理。