本文介绍 ConnectionState
代表的相关状态码。
ConnectionState
是一个枚举类型,每一个枚举表示 SDK 与 RTM 系统的连接状态类型。
示例
/**
* SDK 状态改变的回调 ConnectionStateChanged
* @params newState: 当前的连接状态,详情请见 ConnectionState
* @params reason: 状态改变的原因,详情请见上方枚举类型 ConnectionChangeReason
*/
client.on("ConnectionStateChanged", (newState, reason) => {
// TODO ...
});
连接状态的状态码,如下表:
状态码 | 连接状态类型 |
---|---|
ABORTED | SDK 停止登录 RTM 系统。 |
CONNECTED | SSDK 已登录 RTM 系统。 |
CONNECTING | SDK 正在登录 RTM 系统。 |
DISCONNECTED | 初始状态。SDK 未连接到 RTM 系统。 |
RECONNECTING | SDK 正在重新登录 RTM 系统。 |
ABORTED
SDK 停止登录 RTM 系统。
原因可能为:
- 另一实例已经以同一用户 ID 登录 RTM 系统。
- token 已过期。
请在调用方法 logout 后,调用方法 login 登录 RTM 系统。
CONNECTED
SDK 已登录 RTM 系统。
- 如果 SDK 与 RTM 系统的连接由于网络问题中断,SDK 会触发回调 ConnectionStateChanged ,并切换到 RECONNECTING 状态。
- 如果 SDK 因为相同 ID 已在其他实例或设备中登录等原因被服务器禁止登录,会触发回调 ConnectionStateChanged ,并切换到 ABORTED 状态。
- 如果 App 调用方法 logout,SDK 登出 RTM 系统成功,会触发回调 ConnectionStateChanged ,并切换到 DISCONNECTED 状态。
CONNECTING
SDK 正在登录 RTM 系统。
- login 方法调用成功时,SDK 会触发回调 ConnectionStateChanged ,并切换到 CONNECTED 状态。
- login 方法调用失败时,SDK 会触发回调 ConnectionStateChanged ,并切换到 DISCONNECTED 状态。
DISCONNECTED
初始状态。SDK 未连接到 RTM 系统。
调用方法 login 时,SDK 开始登录 RTM 系统,触发回调 ConnectionStateChanged ,并切换到 CONNECTING 状态。
RECONNECTING
SDK 正在重新登录 RTM 系统
- 如果 SDK 重新登录 RTM 系统成功,会触发回调 ConnectionStateChanged ,并切换到 CONNECTED 状态。
- 如果 SDK 重新登录 RTM 系统失败,会保持 RECONNECTING 状态。
- 如果登录被服务器拒绝,SDK 会触发回调 ConnectionStateChanged ,并切换到 ABORTED 状态。
API 参考
- ConnectionStateChanged SDK 状态改变的回调。
- ConnectionState 当前的连接状态的状态码。
- ConnectionChangeReason 状态改变原因的状态码。