- Android
- iOS
- JavaScript
- 鸿蒙
可以设置多个监听。
JIM.getInstance().getConnectionManager().addConnectionStatusListener("main", new IConnectionManager.IConnectionStatusListener() {
/// 连接状态变化的回调
/// - Parameters:
/// - status: 变化后的状态
/// - code: 连接错误码,在 JIMConst.ConnectionStatus.FAILURE 状态时有效,其它状态均为 0。
/// - extra: 附加信息
@Override
public void onStatusChange(JIMConst.ConnectionStatus status, int code, String extra) {
if (status == JIMConst.ConnectionStatus.CONNECTED) {
Log.i("TAG", "SDK connect success");
}
}
/// 数据库打开的回调,设备离线的情况下也可以打开本地数据库查看历史消息
@Override
public void onDbOpen() {
Log.i("TAG", "onDbOpen");
}
@Override
public void onDbClose() {
}
});
可以设置多个代理。
[JIM.shared.connectionManager addDelegate:self];
/// 数据库打开的回调,设备离线的情况下也可以打开本地数据库查看历史消息
- (void)dbDidOpen {
NSLog(@"dbDidOpen");
}
/// 连接状态变化的回调
/// - Parameters:
/// - status: 变化后的状态
/// - code: 连接错误码,在 JConnectionStatusFailure 状态时有效,其它状态均为 0。
/// - extra: 附加信息
- (void)connectionStatusDidChange:(JConnectionStatus)status
errorCode:(JErrorCode)code
extra:(NSString *)extra {
if (JConnectionStatusConnected == status) {
NSLog(@"SDK connect success");
}
}
全局只需设置一次,多次设置会覆盖,除 connect 方法外,其他所有 SDK 方法必须在连接成功后调用,Event 说明请查看 监听枚举
let { Event, ConnectionState } = JIM;
jim.on(Event.STATE_CHANGED, ({ state, user }) => {
if(ConnectionState.CONNECTING == state){
console.log('im is connecting');
}
if(ConnectionState.CONNECTED == state){
console.log('im is connected', user);
}
// SDK 内部有重连机制,开发者业务层无须重连,重连失败或主动断开都会触发 DISCONNECTED 状态
if(ConnectionState.DISCONNECTED == state){
console.log('im is disconnected');
}
});
可以设置多个监听。
JuggleIm.instance.getConnectionManager().addConnectStatusListener((status,code)=>{
if(status === ConnStatus.Connected){
}
})