应用配置
在开始配置你的应用之前,你需要先了解用户 ID 的概念。
用户 ID(userId
)
用户 ID 是一个用于标识用户和设备的 ASCII 码字符串,长度最多为 64 个字符。在初始化 RTM 客户端实例时,你需要自行定义用户 ID 并将其传递给 userId
参数。RTM 规定在同一个 App ID(appId
)下,每个用户或设备都必须具有唯一的全局用户 ID。
为了正确使用 RTM,你需要了解用户、设备和客户端的概念:
- 用户: 是指应用的实际使用者。
- 设备: 是指实际接入 RTM 网络的终端,包括但不限于手机、电脑、智能手表等 IoT 设备。
- 客户端: 是指运行在设备上的 RTM 对象实例。
一个用户可能拥有多台设备,而一台设备也有可能被多人拥有。为更好地区分不同的设备和用户,RTM 规定同一个用户 ID 不能在多台设备上同时登录 RTM 服务、一台设备上不能同时存在多个 RTM 客户端。如果一个用户拥有多台设备,则需要为每台设备都分配唯一的用户 ID。如果两台拥有相同用户 ID 的设备同时登录 RTM 服务,那么先登录上的设备会被后登录的设备挤下线,而被强制下线的设备会收到相应的事件通知。
在实际场景中,业务层的用户名和 RTM 的用户 ID 可能不同,你需要自行实现二者的映射与绑定逻辑。例如,用户先通过用户名登录你的业务服务器,服务器再生成对应的用户 ID,然后使用该用户 ID 初始化并登录 RTM 服务。
此外,用户 ID 也会影响计费和在线状态通知等功能的使用,所以声网建议你为用户和设备分配全局唯一的用户 ID 并在整个生命周期内保持不变。
应用配置
在应用中使用 RTM SDK,你需要先下载并安装 SDK,再初始化一个 RTM 对象实例,最后实现事件监听函数以捕获 RTM 实时网络中的所有事件通知。
安装 SDK
你可以通过以下任意一种方式获取最新的 RTM JavaScript SDK。
- 使用 CDN
- 使用 npm
点击此处下载最新版本的 JavaScript SDK,并在你的项目中添加以下代码引用它:
// 使用 CDN 直接将以下代码添加到你的 Web 应用中,或下载 SDK 文件后在本地引用
// 将 x.y.z 替换为具体的 SDK 版本号,如 2.1.4
// 可通过发版说明获取最新版本号
<script src="your_path_to_sdk/agora-rtm.x.y.z.min.js"></script>
- 在终端通过 npm 安装 SDK。
JavaScript
// 通过 npm 包管理器安装 SDK
npm install agora-rtm - 在你的 app.js 中导入。
JavaScript
// 在你的 app.js 中导入它
import AgoraRTM from 'agora-rtm';
详细流程参考快速开始。
初始化 RTM 实例
在使用 RTM 功能前,你需要使用 appId
和 userId
来初始化一个 RTM 实例。在后续的示例代码中,你需要将 your_appId
和 your_userId
字段都替换为你自己的 appId
和 userId
。
初始化 RTM 对象时的 appId
和 userId
为必填参数,如果缺失,则初始化会失败。
在一个客户端中,你只需要初始化一次 RTM 对象实例,即可在后续实现中通过该对象实例调用 RTM 的其他 API。
const { RTM } = AgoraRTM;
// Fill in the App ID of your project.
const appId = "your_appId";
// Fill in your user ID.
const userId = "your_userId";
try {
const rtm = new RTM(appId, userId);
conole.log("Create new RTM client Success!");
} catch (status) {
console.log("Error with status: ${status}");
}
我们推荐你使用 try{...}/catch{...}
范式捕获初始化过程中可能出现的异常。现在,你就可以使用 rtm
对象调用 RTM 的其他 API 接口了。
日志设置
当你的应用处于开发、测试阶段时,你可能需要 SDK 输出更详细的信息来定位并修复问题。你可以在初始化 RTM 实例的时候通过设置 rtmConfig
中的 logLevel
来开启日志输出并设置日志信息等级,之后即可在浏览器的控制台中查看日志信息。
const { RTM } = AgoraRTM;
const appId = "your_appId";
const userId = "your_userId";
const rtmConfig = { logLevel : 'debug' };
const rtm = new RTM(appId, userId, rtmConfig);
日志有以下五种等级:
在你的应用上线时,你需要将日志等级参数设置为 none
。
属性值 | 描述 |
---|---|
debug | 输出所有日志。 |
info | 输出 error 、warn 、info 级别的日志。 |
warn | 输出 error 、warn 级别的日志。 |
error | 输出 error 级别的日志。 |
none | 不输出任何日志。 |
你也可以查看错误排查了解更详细地调试及错误处理方法。
Cloud Proxy 设置
在一些网络服务受限的环境下,你可能需要设置代理服务才能访问外部资源。RTM 支持设置 Cloud Proxy 云端代理服务,你只需要在初始化 RTM 实例的时候开启这项功能即可。
const { RTM } = AgoraRTM;
const appId = "your_appId";
const userId = "your_userId";
const rtmConfig = { cloudProxy: true };
const rtm = new RTM(appId, userId, rtmConfig);