网络配置

更新时间不可用

了解实时消息 RTM 的连接协议、代理和防火墙配置。

连接协议配置

为保证连接的稳定性和服务的持续可用性,RTM 客户端与边缘服务器建立连接时会为每种服务(MESSAGE 服务和 STREAM 服务)分别建立两条传输链路。默认情况下,这两条链路分别基于 TCP 协议和 UDP 协议,这种设计使得任何一条链路出现网络问题都不会影响传输效果。相较于其他基于 WebSocket 的消息传输方案,RTM 的冗余链路设计能够最大程度地提升传输稳定性和消息到达率。

在某些情况下,用户可能会发现他们的网络不支持 UDP 端口的传输,这可能是暂时的,也可能是永久性的。在这种情况下,为了确保双链路设计能够最大程度地发挥作用,SDK 允许用户将两条链路都配置成 TCP 协议,只需在 config.rtm 中设置 protocolType 字段即可。以下是一个将双链路都配置为 TCP 协议的代码示例:

Java
RtmConfig rtmConfig = new RtmConfig.Builder("appid", "userId")
    .protocolType(RtmProtocolType.TCP_ONLY)
    .build();

信息

SDK 不支持将两条链路同时配置为 UDP 协议。

Cloud Proxy 设置

在一些网络服务受限的环境下,你可能需要设置代理服务才能访问外部资源。RTM 支持设置 Cloud Proxy 云端代理服务,你只需要在初始化 RTM 实例的时候开启这项功能即可。

从 v2.3.0 起,SDK 不再自动回退到 Cloud Proxy。需要使用 Cloud Proxy 时,必须在初始化 RTM 实例时显式将 cloudProxy 设置为 true。建议根据业务需要向终端用户提供开关,由用户决定是否启用 Cloud Proxy。

JavaScript
const { RTM } = AgoraRTM;
const appId = "your_appId";
const userId = "your_userId";
const rtmConfig = { cloudProxy: true };
const rtm = new RTM(appId, userId, rtmConfig);

信息

该功能仅适用于 Message Channel。

Proxy 设置

在一些网络服务受限的环境下,你可能需要设置代理服务才能访问外部资源。RTM 支持设置 Proxy 代理服务,你只需要在初始化 RTM 实例的时候开启这项功能即可。

C#
using Agora.Rtm;

private IRtmClient rtmClient;

var proxyConfig = new RtmProxyConfig()
// set proxy type as HTTP.
proxyConfig.proxyType = RTM_PROXY_TYPE.HTTP;
// set your proxy server address.
proxyConfig.server = "192.168.11.101";
// set your listener port.
proxyConfig.port = 8080;
// set your proxy account
proxyConfig.account = "Tony";
// set your proxy password
proxyConfig.password = "my_password"

RtmConfig config = new RtmConfig();
// initialize proxyConfig
config.proxyConfig = proxyConfig;

try
{
    rtmClient = RtmClient.CreateAgoraRtmClient(config);
    Debug.Log("RTM Client Initialize Sucessfull");
}
catch (RTMException e)
{
    Debug.Log(string.Format("{0} is failed.", e.Status.Operation ));
    Debug.Log(string.Format("Error code: {0}, due to: {1}", e.Status.ErrorCode, e.Status.Reason));
}

防火墙白名单设置

大型企业、医院、高校、银行等安全需求较高的机构会部署防火墙将办公环境与外网隔离开来,保护内部信息安全。为避免这些企业用户因防火墙无法使用声网的服务,你需要设置防火墙白名单。

信息

本节展示的目标端口可能会根据实际情况调整。如果遇到问题,联系 rtm-support@agora.io。

消息频道

Message Channel 是 RTM 的基础服务,只要你使用了 RTM,就需要将以下内容添加到防火墙白名单:

域名

Shell
.edge.agora.io
.edge.sd-rtn.com
web-1.ap.sd-rtn.com
web-2.ap.sd-rtn.com
web-3.ap.sd-rtn.com
web-4.ap.sd-rtn.com
ap-web-1.agora.io
ap-web-2.agora.io
ap-web-3.agora.io
ap-web-4.agora.io
webcollector-rtm.agora.io
logservice-rtm.agora.io
rtm.statscollector.sd-rtn.com
rtm.logservice.sd-rtn.com

端口

目标端口协议操作
443; 9591; 9593; 27387TCP允许
表格内容超出当前宽度,可横向滚动查看更多列。

域名

Shell
.agora.io

端口

目标端口协议操作
443; 7384; 8443; 9130; 9131; 9136; 9137; 9140, 9141TCP允许
1080; 3000; 8000; 8130; 8443; 9120; 9121; 9700; 25000UDP允许
表格内容超出当前宽度,可横向滚动查看更多列。

流频道

如果你还使用了 Stream Channel,你还需要将以下内容添加到防火墙白名单:

域名

Shell
.agora.io
.edge.agora.io
.sd-rtn.com
.edge.sd-rtn.com

端口

目标端口协议操作
80; 3433; 4700 - 5000; 5668; 5669; 6080; 6443; 8667; 9667TCP允许
3478; 4700 - 5000UDP允许
表格内容超出当前宽度,可横向滚动查看更多列。

端口

目标端口协议操作
4001 - 4150UDP允许
表格内容超出当前宽度,可横向滚动查看更多列。