设置监听
设置状态监听
当 SDK 与融云服务器的连接状态发生变化时,开发者可通过下面方法进行处理。
参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
param | Function | 是 | 当前连接状态变化时, 触发状态监听器的回调 | 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_UNAVAILABLE | WebSocket 不可用 | 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)可通过自定义消息实现。
参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
param | Function | 是 | 当接收到消息时,触发消息监听器的回调 | 2.0.0 |
代码示例
var params = {
// 接收到的消息
onReceived: function (message) {
console.info(message);
}
};
RongIMClient.setOnReceiveMessageListener(params);
设置会话状态监听器
当 SDK 收到会话状态改变时,开发者可通过下面方法进行处理。
参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
param | Function | 是 | 当接收到会话状态改变 时,触发会话状态监听器的回调 | 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)