跳到主要内容

版本:2.X

设置监听

设置状态监听

当 SDK 与融云服务器的连接状态发生变化时,开发者可通过下面方法进行处理。

参数说明

参数类型必填说明最低版本
paramFunction当前连接状态变化时, 触发状态监听器的回调2.0.0

代码示例

5.6.1 版本之前

var params = {
onChanged: function (status) {
// status 标识当前连接状态
switch (status) {
case RongIMLib.ConnectionStatus.CONNECTED:
console.log('连接成功');
break;
case RongIMLib.ConnectionStatus.CONNECTING:
console.log('正在连接');
break;
case RongIMLib.ConnectionStatus.DISCONNECTED:
console.log('断开连接');
break;
case RongIMLib.ConnectionStatus.KICKED_OFFLINE_BY_OTHER_CLIENT:
console.log('其他设备登录, 本端被踢');
break;
case RongIMLib.ConnectionStatus.DOMAIN_INCORRECT:
console.log('域名不正确, 请至控制台查看安全域名配置');
break;
case RongIMLib.ConnectionStatus.NETWORK_UNAVAILABLE:
console.log('网络不可用, 此时可调用 reconnect 进行重连');
break;
default:
console.log('链接状态为', status);
break;
}
}
}

RongIMClient.setConnectionStatusListener(params);

链接状态码说明

状态说明枚举值
RongIMLib.ConnectionStatus.CONNECTED连接成功0
RongIMLib.ConnectionStatus.CONNECTING连接中1
RongIMLib.ConnectionStatus.DISCONNECTED连接已断开2
RongIMLib.ConnectionStatus.NETWORK_UNAVAILABLE网络错误3
RongIMLib.ConnectionStatus.CONNECTION_CLOSED连接已关闭4
RongIMLib.ConnectionStatus.KICKED_OFFLINE_BY_OTHER_CLIENT其他设备登录(被踢)6
RongIMLib.ConnectionStatus.WEBSOCKET_UNAVAILABLEWebSocket 不可用7
RongIMLib.ConnectionStatus.DOMAIN_INCORRECT域名错误(需通过控制台检查安全域名设置)12
RongIMLib.ConnectionStatus.REQUEST_NAVI正在请求导航201
RongIMLib.ConnectionStatus.RESPONSE_NAVI请求导航成功202
RongIMLib.ConnectionStatus.RESPONSE_NAVI_ERROR请求导航失败203
RongIMLib.ConnectionStatus.RESPONSE_NAVI_TIMEOUT请求导航超时204

5.7.0 版本之后

var params = {
onChanged: function (status, code) {
// status 标识当前连接状态, code 表示连接断开原因
switch (status) {
case RongIMLib.RCConnectionStatus.CONNECTED:
console.log('连接成功');
break;
case RongIMLib.RCConnectionStatus.CONNECTING:
console.log('正在连接');
break;
case RongIMLib.RCConnectionStatus.DISCONNECTED:
console.log('断开连接, 错误码:' + code);
break;
case RongIMLib.RCConnectionStatus.SUSPENDED:
// SDK 内部会重连
console.log('连接断开,内部重连中,错误码:' + code);
break;
}
}
}

RongIMClient.onConnectionStatusChange(params);

错误码类型: ErrorCode

设置消息监听

当 SDK 在接收到消息时,开发者可通过下面方法进行处理。

危险

音频消息(HQVoiceMessage)支持版本: RongIMLib 2.5.0 及以上. 低版本音频消息(HQVoiceMessage)可通过自定义消息实现。

参数说明

参数类型必填说明最低版本
paramFunction当接收到消息时,触发消息监听器的回调2.0.0

代码示例

var params = {
// 接收到的消息
onReceived: function (message) {
console.info(message);
}
};
RongIMClient.setOnReceiveMessageListener(params);

设置会话状态监听器

当 SDK 收到会话状态改变时,开发者可通过下面方法进行处理。

参数说明

参数类型必填说明最低版本
paramFunction当接收到会话状态改变时,触发会话状态监听器的回调2.5.8

代码示例

var params = {
//status 标识当前监听到的会话状态
onChanged: function(status) {
console.log(status);
}
};
RongIMClient.setConversationStatusListener(params);

设置离线消息拉取完成监听

当 SDK 离线消息拉取完成时,开发者可通过下面方法进行处理。

代码示例

var params = {
onFinished: function() {
console.log("离线消息拉取完成");
}
};
RongIMClient.setPullOffLineFinished(params);

设置消息敏感词监听

代码示例

/**
* 敏感词监听
*/
const listener = {
onReceived(info){
const messageId = info.blockedMessageUId
const conversationType = info.conversationType
const targetId = info.targetId
const blockType = info.blockType
}
}
RongIMClient.setMessageBlockedListener (listener)

设置聊天室监听

代码示例

从 2.10.0 开始,支持在用户加入、退出聊天室发送通知,该功能需要提交工单申请开通。

/**
* 聊天室监听
*/
const listener = {
onChanged(info){
// 监听到的聊天室 KV 更新
const updatedEntries = info.updatedEntries
// 加入或退出的聊天室成员
const userChange = info.userChange
// 销毁的聊天室 ID
const chatroomDestroyedId = info.chatroomDestroyed
}
}
RongIMClient.setChatRoomStatusListener(listener)