SDK 自动重连
SDK 包含自动重连机制,第一次自动重连在登录失败2秒后发起,之后每次乘2,最多不超过120秒。
启动SDK 自动重连需要初始化SDK 自动重连插件:
String appName = “JusRCS”; MtcCliHelper.initialize(applicationContext, appName);
1. 首次登录必须由界面发起
发起登录时SDK 会通知 reg state 为 MTC_REG_STATE_REGING
- 若第一次登录时没有网络(推荐无网络时不调用登录),登陆失败时 SDK 会通知 reg state 为 MTC_REG_STATE_IDLE,state code 为 MTC_CLI_REG_ERR_NETWORK。此时SDK 不发起重新登录。
- 若第一次登录时,由于用户名或密码错误登录失败,SDK 会通知 reg state 为 MTC_REG_STATE_IDL,state code为 MTC_CLI_REG_ERR_AUTH_FAILED, MTC_CLI_REG_ERR_INVALID_USER或者 MTC_CLI_REG_ERR_SRV_FORBIDDEN,SDK 不发起重新登录。
- 登录成功 SDK 通知 reg state 为 MTC_REG_STATE_REGED。
- 其它情况下第一次登陆失败,SDK 会通知 reg state 为 MTC_REG_STATE_IDLE,SDK 根据策略再次发起登录。
2. 网络切换
切换过程中SDK 会先通知 reg state 为 MTC_REG_STATE_IDLE, state code 为 MTC_CLI_REG_ERR_NETWORK。
- 登录成功的情况下,网络从可用切换到不可用,此时 SDK 不发起重新登录。
- 登录成功的情况下,网络切换后仍可用,SDK 发起刷新注册,SDK 会通知 reg state 为 MTC_REG_STATE_REGING。
- 注册成功后SDK 会先通知 reg state 为 MTC_REG_STATE_REGED。
- 注册失败后 SDK 会通知reg state 为 MTC_REG_STATE_IDLE, state code 为 MTC_CLI_REG_ERR_TIMEOUT 。SDK 根据策略再次发起登录。
- 网络从不可用切换到可用
- 曾经登录成功,后主动注销或被服务器注销,SDK 不会发起重新登录。
- 若曾发起登录,没有主动注销或被服务器注销,SDK 会根据策略发起重登录,SDK 会通知 reg state 为 MTC_REG_STATE_REGING,注册成功后通知 reg state 为 MTC_REG_STATE_REGED。
3. 登录成功后,账号在其他设备登录
- SDK 通知 reg state 为 MTC_REG_STATE_IDLE,state code 为 MTC_CLI_REG_ERR_DEACTED。