更新时间: 2021-03-08
# 设置监听
初始化完成后,应在建立连接之前对 im
对象添加事件监听器,及时获取相关事件通知。
当多次调用 im.watch
对同一事件进行监听时,添加的每个监听函数都会被执行。
# 参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
message | Function | 否 | 接收消息时触发,结构体参考 | 3.0.0 |
status | Function | 否 | IM 链接状态变更时触发,链接状态码说明 | 3.0.0 |
conversation | Function | 否 | 会话列表有变更时触发 | 3.0.0 |
chatroom | Function | 否 | 聊天室 KV 数据变化时触发 | 3.0.6 |
expansion | Function | 否 | 消息扩展数据变更时触发 | 3.0.7 |
# 代码示例
- 所有代码示例中的
im
均指通过RongIMLib.init()
获取的实例对象- 以下示例中假定存在
getExistedConversationList
方法,以获取当前已存在的会话列表数据
// 添加事件监听 im.watch({ // 监听会话列表变更事件 conversation (event) { // 假定存在 getExistedConversationList 方法,以获取当前已存在的会话列表数据 const conversationList = getExistedConversationList() // 发生变更的会话列表 const updatedConversationList = event.updatedConversationList; // 通过 im.Conversation.merge 计算最新的会话列表 const latestConversationList = im.Conversation.merge({ conversationList, updatedConversationList }) }, // 监听消息通知 message (event) { // 新接收到的消息内容 const message = event.message; }, // 监听 IM 连接状态变化 status (event) { console.log('connection status:', event.status); }, // 监听聊天室 KV 数据变更 chatroom (event) { /** * 聊天室 KV 存储数据更新 * @example * [ * { * "key": "name", * "value": "我是小融融", * "timestamp": 1597591258338, * "chatroomId": "z002", * "type": 1 // 1: 更新( 含:修改和新增 )、2: 删除 * }, * ] */ const updatedEntries = event.updatedEntries }, expansion (event) { /** * 更新的消息拓展数据 * @example { * expansion: { key: 'value' }, // 设置或更新的扩展值 * messageUId: 'URIT-URIT-ODMF-DURR' // 设置或更新扩展的消息 uid * } */ const updatedExpansion = event.updatedExpansion; /** * 删除的消息拓展数据 * @example { * deletedKeys: ['key1', 'key2'], // 设置或更新的扩展值 * messageUId: 'URIT-URIT-ODMF-DURR' // 设置或更新扩展的消息 uid * } */ const deletedExpansion = event.deletedExpansion; } });
已复制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57