跳到主要内容

监听连接状态

客户端 SDK 为 App 提供了 IM 连接状态监听器 ConnectionStatusListener。通过监听 IM 连接状态的变化,App 可以进行不同业务处理,或在页面上给出提示。

连接状态监听器说明

ConnectionStatusListener 接口定义如下:

  public interface ConnectionStatusListener {
void onChanged(ConnectionStatus status);
}

当连接状态发生变化时,SDK 会通过 onChanged() 方法,将当前的连接状态回调给开发者。各状态的具体说明请参考下表。

状态名称状态值说明
NETWORK_UNAVAILABLE-1网络不可用
CONNECTED0连接成功
CONNECTING1连接中
UNCONNECTED2未连接状态,即应用没有调用过连接方法
KICKED_OFFLINE_BY_OTHER_CLIENT3用户账号在其它设备登录,此设备被踢下线
TOKEN_INCORRECT4Token 过期时触发此状态
CONN_USER_BLOCKED6用户被控制台封禁
SIGN_OUT12用户主动断开连接的状态,见断开连接
SUSPEND13连接暂时挂起(多是由于网络问题导致),SDK 会在合适时机进行自动重连
TIMEOUT14连接超时,SDK 将停止连接,用户需要做超时处理,再自行调用连接接口进行连接

设置连接状态监听器

建议在应用生命周期内设置。为了避免内存泄露,请在不需要监听时,将设置的监听器移除。

private RongIMClient.ConnectionStatusListener connectionStatusListener = new RongIMClient.ConnectionStatusListener() {
@Override
public void onChanged(ConnectionStatus status) {
//开发者需要根据连接状态码,进行不同业务处理
}
};
public void setIMStatusListener() {
RongIM.setConnectionStatusListener(connectionStatusListener);
}