你问我答 | 即时通信IM 第四季

2022-04-11 12:40:21 浏览数 (1)

即时通信IM 你问我答 第4季

本期共解答10个问题

Q1:即时通信 IM可以让用户加入多个音视频聊天室吗?

目前暂不可以,同一用户同时只能加入一个音视频聊天室。

例:用户已在音视频聊天室 A 中,再加入音视频聊天室 B,SDK 会先退出音视频聊天室 A,然后加入音视频聊天室 B。

Q2:即时通信 IM如何实现本地搜索?

从增强版5.4.666版本开始即时通信IM支持本地搜索。

使用前需要购买旗舰版套餐包,请参见:

本地搜索(iOS):https://cloud.tencent.com/document/product/269/56937

本地搜索(Android):https://cloud.tencent.com/document/product/269/56936

Q3:即时通信 IM用户数量上限是什么意思?

即时通信IM用户数量上限指的是IM注册人数,即使用人数的上限。

即时通信IM体验版上限是100个账号,专业版及旗舰版没有限制。

Q4:即时通信 IM为什么会收到重复的消息?

请检查以下逻辑是否正确:

  • addSimpleMsgListener 与 addAdvancedMsgListener 是否混用。如果混用,当收到文本消息或自定义消息时,两个监听都会回调,会导致收到重复消息;
  • 同一个监听对象是否重复 add,如果监听对象不再使用,请主动调用对应的 removeSimpleMsgListener 或 removeAdvancedMsgListener 接口移除多余的监听器。
Q5:即时通信 IMApp 卸载重装后已读回执为什么失效了?

在单聊场景下,接收方如果调用 markC2CMessageAsRead 设置消息已读,发送方收到的已读回执里面包含了对方已读的时间戳 timestamp,SDK 内部会根据 timestamp 判断消息对方是否已读, timestamp 目前只在本地保存,程序卸载重装后会丢失。(该问题已修复,使用最新版SDK可解决)

Q6:即时通信 IM为什么换了一个手机登录相同帐号后拉取的会话列表不一致?

本地存储的会话和云端存储的会话并不总是一致的,如果用户不主动调用 deleteConversation 接口删除本地的会话,该会话就会一直存在。而云端存储的会话默认只会保存100条(旗舰版用户可在控制台配置保存最多500条),且对于长时间没有信息变更的会话,云端最多保存7天,所以不同的终端本地显示的会话可能会不一样。

Q7:即时通信 IM SDK 支持会话置顶吗?

即时通信 IM SDK 从5.3.425版本开始支持会话置顶功能并可以同步到云端。

Q8:即时通信 IM为什么会拉取到重复的会话?

调用 getConversationList 接口拉取的会话可能已经通过 onNewConversation 回调接口添加到了 UI 会话列表的数据源中,因此为了避免重复添加同一个会话,您需要在 UI 会话列表数据源中根据 getConversationID 找到相同的会话并做替换。

Q9:即时通信 IM为什么群成员进群和退群收不到通知?

请确认群组类型:

  • 临时会议群(Meeting)不支持群成员变更通知;
  • 直播群(AVChatRoom)消息限制40条/秒,会优先保证高优先级消息的收发,超过限制后会优先丢弃低优先级的消息。
Q10:即时通信 IM为什么会议群(Meeting) 中的未读数一直为零?

临时会议群(Meeting)和直播群(AVChatRoom)分别配合会议和直播的音视频场景,因此这两类群组均不支持未读消息计数。

0 人点赞