使用云代理
更新时间: 2024/09/18 16:26:13
网易云信云代理可穿透防火墙限制,使用固定 IP 连接到网易云信服务器。
云代理方案可满足多种在公有云、混合云、私有云等有防火墙或者其他网络限制的环境下,内外网进行音视频通话的场景。您仅需将少量的 IP 地址加端口加入到防火墙白名单中,然后调用相关 API 接口进行配置,即可使用云代理方案,实现内网访问网易云信服务器。
部署方式
网易云信云代理方案支持公有云与私有部署两种部署方式,用户根据自身场景可选择对应部署方式。
-
公有云方式部署在云信公有云服务器上,可以降低用户 IT 岗位运维工作的维护成本,只需要配置云代理服务器白名单,不再需要根据云信服务器的增加而多次配置。
如需公有云方式部署,请联系商务经理申请试用,并获取指定版本的 NERTC SDK。
仅 V4.6.0 及之后版本的 NERTC SDK 支持此功能,请根据需要前往网易云信 SDK 下载中心获取最新版本的 SDK。
-
私有部署适用于混合云的场景,将代理部署在用户服务器上,一般情况下在隔离区(DMZ 区)进行部署,实现内外网媒体的代理传输。
如需私有部署,请联系商务经理沟通业务需求与部署方案。
功能架构
- NERTC SDK 向云代理 Proxy 发起代理请求,云代理 Proxy 返回相关的代理信息用于终端配置。
- NERTC SDK 使用代理信息向云代理 Proxy 发送数据,云代理 Proxy 接收数据并进行处理提供给云信的业务服务器与网易云信 WE-CAN(Communications Acceleration Network)。
- WE-CAN 向云代理 Proxy 返回数据。
- 云代理 Proxy 接收数据处理后并将数据传给 NERTC SDK。
注意事项
- 使用云代理功能前,请参考《快速入门》完成开发环境准备。
- 若您的网络隔离策略限制了加入房间等操作,请在加入房间前,先调用
setCloudProxy
方法开启云代理服务。 setCloudProxy
方法在引擎生命周期内有效。销毁引擎之后,如果重启引擎,需要重新调用setCloudProxy
。
使用云代理
-
添加白名单
请将下表中的 IP 地址及端口添加到防火墙白名单中。
以下服务器 IP 地址和端口仅供测试使用,测试完成后,网易云信会为您部署云代理服务正式环境。请在应用正式上线前向网易云信申请正式的 IP 地址和端口,您需要其添加到企业防火墙的白名单。
区域 IP 端口 上海
81.69.152.207
- UDP:3478/7070
- TCP:443
北京
211.159.144.126
- UDP:3478/7070
- TCP:443
广州
1.14.217.204
- UDP:3478/7070
- TCP:443
成都
139.155.65.90
- UDP:3478/7070
- TCP:443
-
调用 SDK API。
-
调用
setCloudProxy
接口,开通云代理设置。成功连接云代理后,SDK 会触发
onConnectionStateChanged(CONNECTION_STATE_CONNECTING, CONNECTION_CHANGED_SETTING_PROXY_SERVER)
回调。
若您需要关闭云代理,请在加入房间前再次调用此接口,并将
proxyType
参数设置为TRANSPORT_TYPE_NONE_PROXY(0)
,否则房间内的此项操作只在下次加入房间时生效。- 调用
joinChannel
接口加入房间,此时 SDK 会使用云代理地址进行加房间操作。
加入房间时 uid 不可为 0,否则 SDK 会报错 414,表示云代理不生效。
示例代码:
//第一步设置开启云代理 NERtcEx.getInstance().setCloudProxy(NERtcConstants.TransportType.TRANSPORT_TYPE_UDP_PROXY); //第二步加入房间 NERtcEx.getInstance().joinChannel(token, channelName, uid); //关闭云代理 NERtcEx.getInstance().setCloudProxy(NERtcConstants.TransportType.TRANSPORT_TYPE_NONE_PROXY);
-