IMSDK
即时通信 IM 提供全球接入、单聊、群聊、消息推送、资料关系链托管、账号鉴权等全方位解决方案,并提供完备的 App 接入、后台管理接口。
V2TIMConversationManagerabstract

Public 成员函数

virtual ~V2TIMConversationManager ()
 
virtual void AddConversationListener (V2TIMConversationListener *listener)=0
 
virtual void RemoveConversationListener (V2TIMConversationListener *listener)=0
 
virtual void GetConversationList (uint64_t nextSeq, uint32_t count, V2TIMValueCallback< V2TIMConversationResult > *callback)=0
 
virtual void GetConversation (const V2TIMString &conversationID, V2TIMValueCallback< V2TIMConversation > *callback)=0
 
virtual void GetConversationList (const V2TIMStringVector &conversationIDList, V2TIMValueCallback< V2TIMConversationVector > *callback)=0
 
virtual void GetConversationListByFilter (const V2TIMConversationListFilter &filter, uint64_t nextSeq, uint32_t count, V2TIMValueCallback< V2TIMConversationResult > *callback)=0
 
virtual void DeleteConversation (const V2TIMString &conversationID, V2TIMCallback *callback)=0
 
virtual void DeleteConversationList (const V2TIMStringVector &conversationIDList, bool clearMessage, V2TIMValueCallback< V2TIMConversationOperationResultVector > *callback)=0
 
virtual void SetConversationDraft (const V2TIMString &conversationID, const V2TIMString &draftText, V2TIMCallback *callback)=0
 
virtual void SetConversationCustomData (const V2TIMStringVector &conversationIDList, const V2TIMBuffer &customData, V2TIMValueCallback< V2TIMConversationOperationResultVector > *callback)=0
 
virtual void PinConversation (const V2TIMString &conversationID, bool isPinned, V2TIMCallback *callback)=0
 
virtual void MarkConversation (const V2TIMStringVector &conversationIDList, uint64_t markType, bool enableMark, V2TIMValueCallback< V2TIMConversationOperationResultVector > *callback)=0
 
virtual void GetTotalUnreadMessageCount (V2TIMValueCallback< uint64_t > *callback)=0
 
virtual void GetUnreadMessageCountByFilter (const V2TIMConversationListFilter &filter, V2TIMValueCallback< uint64_t > *callback)=0
 
virtual void SubscribeUnreadMessageCountByFilter (const V2TIMConversationListFilter &filter)=0
 
virtual void UnsubscribeUnreadMessageCountByFilter (const V2TIMConversationListFilter &filter)=0
 
virtual void CleanConversationUnreadMessageCount (const V2TIMString &conversationID, uint64_t cleanTimestamp, uint64_t cleanSequence, V2TIMCallback *callback)=0
 
virtual void CreateConversationGroup (const V2TIMString &groupName, const V2TIMStringVector &conversationIDList, V2TIMValueCallback< V2TIMConversationOperationResultVector > *callback)=0
 
virtual void GetConversationGroupList (V2TIMValueCallback< V2TIMStringVector > *callback)=0
 
virtual void DeleteConversationGroup (const V2TIMString &groupName, V2TIMCallback *callback)=0
 
virtual void RenameConversationGroup (const V2TIMString &oldName, const V2TIMString &newName, V2TIMCallback *callback)=0
 
virtual void AddConversationsToGroup (const V2TIMString &groupName, const V2TIMStringVector &conversationIDList, V2TIMValueCallback< V2TIMConversationOperationResultVector > *callback)=0
 
virtual void DeleteConversationsFromGroup (const V2TIMString &groupName, const V2TIMStringVector &conversationIDList, V2TIMValueCallback< V2TIMConversationOperationResultVector > *callback)=0
 

构造及析构函数说明

◆ ~V2TIMConversationManager()

virtual ~V2TIMConversationManager ( )
inlinevirtual

成员函数说明

◆ AddConversationListener()

virtual void AddConversationListener ( V2TIMConversationListener listener)
pure virtual

1.1 添加会话监听器

◆ RemoveConversationListener()

virtual void RemoveConversationListener ( V2TIMConversationListener listener)
pure virtual

1.2 移除会话监听器

◆ GetConversationList() [1/2]

virtual void GetConversationList ( uint64_t  nextSeq,
uint32_t  count,
V2TIMValueCallback< V2TIMConversationResult > *  callback 
)
pure virtual

1.3 获取会话列表

  • 一个会话对应一个聊天窗口,比如跟一个好友的 1v1 聊天,或者一个聊天群,都是一个会话。
  • 由于历史的会话数量可能很多,所以该接口希望您采用分页查询的方式进行调用,每次分页拉取的个数建议为 100 个。
  • 该接口拉取的是本地缓存的会话,如果服务器会话有更新,SDK 内部会自动同步,然后在 V2TIMConversationListener 回调告知客户。
  • 如果会话全部拉取完毕,成功回调里面 V2TIMConversationResult 中的 isFinished 获取字段值为 true。
注意
会话排序规则
  • 5.5.892 及以后版本, 该接口获取的会话列表默认已经按照会话 orderKey 做了排序,orderKey 值越大,代表该会话排序越靠前。
  • 5.5.892 以前版本,该接口获取的会话列表默认已经按照会话 lastMessage -> timestamp 做了排序,timestamp 越大,会话越靠前。
参数
nextSeq分页拉取的游标,第一次默认取传 0,后续分页拉传上一次分页拉取成功回调里的 nextSeq
count分页拉取的个数,一次分页拉取不宜太多,会影响拉取的速度,建议每次拉取 100 个会话

◆ GetConversation()

virtual void GetConversation ( const V2TIMString conversationID,
V2TIMValueCallback< V2TIMConversation > *  callback 
)
pure virtual

1.4 获取单个会话

参数
conversationID会话唯一 ID,C2C 单聊组成方式为: "c2c_userID": 群聊组成方式为: "group_groupID"

◆ GetConversationList() [2/2]

virtual void GetConversationList ( const V2TIMStringVector conversationIDList,
V2TIMValueCallback< V2TIMConversationVector > *  callback 
)
pure virtual

1.5 获取指定会话列表

参数
conversationIDList会话唯一 ID,C2C 单聊组成方式为: "c2c_userID": 群聊组成方式为: "group_groupID"

◆ GetConversationListByFilter()

virtual void GetConversationListByFilter ( const V2TIMConversationListFilter filter,
uint64_t  nextSeq,
uint32_t  count,
V2TIMValueCallback< V2TIMConversationResult > *  callback 
)
pure virtual

1.6 获取会话列表高级接口(从 6.5 版本开始支持)

参数
filter会话 filter
nextSeq分页拉取的游标
count分页拉取的个数

◆ DeleteConversation()

virtual void DeleteConversation ( const V2TIMString conversationID,
V2TIMCallback callback 
)
pure virtual

1.7 删除会话

参数
conversationID会话唯一 ID,C2C 单聊组成方式为: "c2c_userID": 群聊组成方式为: "group_groupID"
注意
  • 删除会话会在本地删除的同时,在服务器也会同步删除。
  • 会话内的消息在本地删除的同时,在服务器也会同步删除。

◆ DeleteConversationList()

virtual void DeleteConversationList ( const V2TIMStringVector conversationIDList,
bool  clearMessage,
V2TIMValueCallback< V2TIMConversationOperationResultVector > *  callback 
)
pure virtual

1.8 删除会话列表(7.1 及以上版本支持)

参数
conversationIDList会话唯一 ID 列表,C2C 单聊组成方式为: "c2c_userID":群聊组成方式为: "group_groupID"
clearMessage是否删除会话中的消息;设置为 false 时,保留会话消息;设置为 true 时,本地和服务器的消息会一起删除,并且不可恢复
注意
每次最多支持删除 100 个会话

◆ SetConversationDraft()

virtual void SetConversationDraft ( const V2TIMString conversationID,
const V2TIMString draftText,
V2TIMCallback callback 
)
pure virtual

1.9 设置会话草稿

参数
conversationID会话唯一 ID,C2C 单聊组成方式为: "c2c_userID": 群聊组成方式为: "group_groupID"

只在本地保存,不会存储 Server,不能多端同步,程序卸载重装会失效。

参数
draftText草稿内容, 空字符串表示 则表示取消草稿

◆ SetConversationCustomData()

virtual void SetConversationCustomData ( const V2TIMStringVector conversationIDList,
const V2TIMBuffer customData,
V2TIMValueCallback< V2TIMConversationOperationResultVector > *  callback 
)
pure virtual

1.10 设置会话自定义数据(从 6.5 版本开始支持)

参数
customData自定义数据,最大支持 256 bytes

◆ PinConversation()

virtual void PinConversation ( const V2TIMString conversationID,
bool  isPinned,
V2TIMCallback callback 
)
pure virtual

1.11 设置会话置顶(5.3.425 及以上版本支持)

参数
conversationID会话唯一 ID,C2C 单聊组成方式为: "c2c_userID": 群聊组成方式为: "group_groupID"
isPinned是否置顶

◆ MarkConversation()

virtual void MarkConversation ( const V2TIMStringVector conversationIDList,
uint64_t  markType,
bool  enableMark,
V2TIMValueCallback< V2TIMConversationOperationResultVector > *  callback 
)
pure virtual

1.12 标记会话(从 6.5 版本开始支持,需要您购买旗舰版套餐)

参数
conversationIDList会话列表
markType会话标记类型,取值详见 @V2TIMConversationMarkType。
enableMarkYES:设置标记 NO:取消标记

如果已有标记不能满足您的需求,您可以自定义扩展标记,扩展标记需要满足以下两个条件: 1、扩展标记值不能和 V2TIMConversationMarkType 已有的标记值冲突 2、扩展标记值必须是 0x1LL << n 的位移值(32 <= n < 64,即 n 必须大于等于 32 并且小于 64),比如扩展标记值 0x1LL << 32 表示 "Windows 在线"

注意
:扩展标记值不能设置为 0x1 << 32,要设置为 0x1LL << 32,明确告诉编译器是 64 位的整型常量。

◆ GetTotalUnreadMessageCount()

virtual void GetTotalUnreadMessageCount ( V2TIMValueCallback< uint64_t > *  callback)
pure virtual

1.13 获取全部会话的未读总数(5.3.425 及以上版本支持)

注意
  • 调用该接口以后,任意会话的未读数发生变化时,SDK 都会给您抛 OnTotalUnreadMessageCountChanged 回调。
  • 未读总数会减去设置为免打扰的会话的未读数,即消息接收选项设置为 V2TIM_NOT_RECEIVE_MESSAGE 或 V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE 或 V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE_EXCEPT_AT 的会话。

◆ GetUnreadMessageCountByFilter()

virtual void GetUnreadMessageCountByFilter ( const V2TIMConversationListFilter filter,
V2TIMValueCallback< uint64_t > *  callback 
)
pure virtual

1.14 获取按会话 filter 过滤的未读总数(7.0 及以上版本支持)

参数
filter会话 filter
注意
  • 未读总数会减去设置为免打扰的会话的未读数,即消息接收选项设置为 V2TIM_NOT_RECEIVE_MESSAGE 或 V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE 或 V2TIMMessage.V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE_EXCEPT_AT 的会话。

◆ SubscribeUnreadMessageCountByFilter()

virtual void SubscribeUnreadMessageCountByFilter ( const V2TIMConversationListFilter filter)
pure virtual

1.15 注册监听指定 filter 的会话未读总数变化(7.0 及以上版本支持)

参数
filter会话 filter
注意
  • 当您调用这个接口以后,该 filter 下的未读数发生变化时,SDK 会给您抛 OnUnreadMessageCountChangedByFilter 回调。

◆ UnsubscribeUnreadMessageCountByFilter()

virtual void UnsubscribeUnreadMessageCountByFilter ( const V2TIMConversationListFilter filter)
pure virtual

1.16 取消监听指定 filter 的会话未读总数变化(7.0 及以上版本支持)

参数
filter会话 filter

◆ CleanConversationUnreadMessageCount()

virtual void CleanConversationUnreadMessageCount ( const V2TIMString conversationID,
uint64_t  cleanTimestamp,
uint64_t  cleanSequence,
V2TIMCallback callback 
)
pure virtual

1.17 清理会话的未读消息计数(7.1 及以上版本支持)

参数
conversationID会话唯一 ID,C2C 单聊组成方式为: "c2c_userID";群聊组成方式为: "group_groupID"
cleanTimestamp清理时间戳,单位为秒,仅对单聊会话生效,指定清理哪一个 timestamp 之前的未读消息计数;当传入为 0 时,对应会话所有的未读消息将被清理,会话的未读数会清 0
cleanSequence清理 sequence,仅对群聊会话生效,指定清理哪一个 sequence 之前的未读消息计数;当传入为 0 时,对应会话所有的未读消息将被清理,会话的未读数会清 0
注意
  • 当您想清理所有单聊会话的未读消息计数,conversationID 请传入 "c2c",即不指定具体的 userID;
  • 当您想清理所有群聊会话的未读消息计数,conversationID 请传入 "group",即不指定具体的 groupID;
  • 当您想清理所有会话的未读消息计数,conversationID 请传入 "";
  • 该接口调用成功后,SDK 会通过 onConversationChanged 回调将对应会话的最新未读数通知给您。

◆ CreateConversationGroup()

virtual void CreateConversationGroup ( const V2TIMString groupName,
const V2TIMStringVector conversationIDList,
V2TIMValueCallback< V2TIMConversationOperationResultVector > *  callback 
)
pure virtual

2.1 创建会话分组

参数
groupName分组名(必填参数,长度要 > 0,最大支持 32 bytes)
conversationIDList会话 ID 列表(必填参数,不能为空)
注意
会话分组最大支持 20 个,不再使用的分组请及时删除

◆ GetConversationGroupList()

virtual void GetConversationGroupList ( V2TIMValueCallback< V2TIMStringVector > *  callback)
pure virtual

2.2 获取会话分组列表

注意
该接口获取的是本地缓存的会话分组,建议在 onSyncServerFinish 之后调用。

◆ DeleteConversationGroup()

virtual void DeleteConversationGroup ( const V2TIMString groupName,
V2TIMCallback callback 
)
pure virtual

2.3 删除会话分组

◆ RenameConversationGroup()

virtual void RenameConversationGroup ( const V2TIMString oldName,
const V2TIMString newName,
V2TIMCallback callback 
)
pure virtual

2.4 重命名会话分组

◆ AddConversationsToGroup()

virtual void AddConversationsToGroup ( const V2TIMString groupName,
const V2TIMStringVector conversationIDList,
V2TIMValueCallback< V2TIMConversationOperationResultVector > *  callback 
)
pure virtual

2.5 添加会话到一个会话分组

◆ DeleteConversationsFromGroup()

virtual void DeleteConversationsFromGroup ( const V2TIMString groupName,
const V2TIMStringVector conversationIDList,
V2TIMValueCallback< V2TIMConversationOperationResultVector > *  callback 
)
pure virtual

2.6 从一个会话分组中删除会话