IMSDK
IM features a comprehensive suite of solutions including global access, one-to-one chat, group chat, message push, profile and relationship chain hosting, and account authentication. It also provides complete app access and backend management APIs.
V2TIMConversationManagerabstract

Public Member Functions

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
 

Constructor & Destructor Documentation

◆ ~V2TIMConversationManager()

virtual ~V2TIMConversationManager ( )
inlinevirtual

Member Function Documentation

◆ AddConversationListener()

virtual void AddConversationListener ( V2TIMConversationListener listener)
pure virtual

1.1 Add the conversation listener

◆ RemoveConversationListener()

virtual void RemoveConversationListener ( V2TIMConversationListener listener)
pure virtual

1.2 Remove the conversation listener

◆ GetConversationList() [1/2]

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

1.3 Get the conversation list

  • Each conversation corresponds to a chat window. For example, a one-to-one chat or a chat group is a conversation.
  • Since there may be a large number of historical conversations, you are advised to call this API in query-by-page mode and pull 100 historical conversations per page at a time.
  • This API pulls locally cached conversations. If conversations on the server are updated, the SDK automatically synchronizes the updates internally and then notifies users via V2TIMConversationListener callback.
  • If all conversations are pulled, the value of the isFinished field in V2TIMConversationResult in the success callback is true.
Attention
Conversation sorting rules
  • For 5.5.892 and later versions, conversations on the conversion list obtained by this API are sorted by orderKey by default. The larger the orderKey value, the higher the order of the conversation.
  • For versions earlier than 5.5.892, conversations on the conversion list obtained by this API are sorted by "lastMessage -> timestamp" by default. The later the timestamp, the higher the order of the conversation.
Parameters
nextSeqPulling-by-page cursor. It is set to 0 when the information is pulled for the first time. The value of this field in the callback for the current paginated pulling is passed in for the next pull.
countNumber of conversations pulled per page. The value of this field cannot be too large; otherwise, the pulling speed is affected. We recommend that you pull 100 conversations per page.

◆ GetConversation()

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

1.4 Get a single conversation

Parameters
conversationIDUnique ID of a conversation. For one-to-one chats, the value format is String.format("c2c_%s", "userID"). For group chats, the value format is String.format("group_%s", "groupID").

◆ GetConversationList() [2/2]

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

1.5 Get a specified conversation list

Parameters
conversationIDListList of the unique IDs of conversations. For one-to-one chats, the value format is String.format("c2c_%s", "userID"). For group chats, the value format is String.format("group_%s", "groupID").

◆ GetConversationListByFilter()

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

1.6 Get the conversation list (advanced API,supported only in 6.5 and later versions)

Parameters
filterThe conversation filter
nextSeqThe pulling-by-page cursor
countNumber of conversations to be pulled per page

◆ DeleteConversation()

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

1.7 Delete a conversation

Parameters
conversationIDUnique ID of a conversation. For one-to-one chats, the value format is String.format("c2c_%s", "userID"). For group chats, the value format is String.format("group_%s", "groupID").
Attention
  • When a conversation is deleted from local storage, it is also deleted from the server.
  • When messages in a conversation are deleted from local storage, they are also deleted from the server.

◆ DeleteConversationList()

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

1.8 Delete a list of conversations (Supported only in 7.1 and later versions)

Parameters
conversationIDListList of the unique IDs of conversations. For one-to-one chats, the value format is String.format("c2c_%s", "userID"). For group chats, the value format is String.format("group_%s", "groupID").
clearMessageWhether to delete messages in the conversation; if this is set to false, the messages are retained; if this is set to true, the messages will be deleted from local storage and the server and cannot be recovered.
Attention
A maximum of 100 conversations are supported at a time.

◆ SetConversationDraft()

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

1.9 Set a draft for a conversation

Parameters
conversationIDUnique ID of a conversation. For one-to-one chats, the value format is String.format("c2c_%s", "userID"). For group chats, the value format is String.format("group_%s", "groupID").
draftTextDraft content. The value empty indicates cancelling the draft.
Attention
Drafts are stored only locally. They are not stored on the server and cannot be synchronized across devices. If the app is reinstalled, drafts will be lost.

◆ SetConversationCustomData()

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

1.10 Set conversation custom data(supported only in 6.5 and later versions)

Parameters
customDataCustom data (max 256 bytes)

◆ PinConversation()

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

1.11 Pin a conversion to the top (supported only in 5.3.425 and later versions)

Parameters
conversationIDUnique ID of a conversation. For one-to-one chats, the value format is String.format("c2c_%s", "userID"). For group chats, the value format is String.format("group_%s", "groupID").
isPinnedWhether to pin a conversation to the top

◆ MarkConversation()

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

1.12 Mark a conversation(supported only in Chat Premium 6.5 and later versions)

Parameters
conversationIDListconversation list
markTypemark type of the conversation. For the valid values, see the V2TIMConversationMarkType definition.
enableMarktrue:mark false:unmark

If existing marks do not meet your needs, you can customize extension marks. Extension marks need to meet the following two conditions:

1、Extended mark values ​​must not conflict with existing mark values ​​in V2TIIMConversationMarkType.

2、Extended mark values must be a 0x1LL << n (32 <= n < 64, that is, n must be greater than or equal to 32 and less than 64). For example, you can use the extension mark "0x1LL << 32" to mean "Windows online".

Attention
: The extension mark value cannot be set to 0x1 << 32. It must be set to 0x1LL << 32, which explicitly tells the compiler that it is a 64-bit integer constant.

◆ GetTotalUnreadMessageCount()

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

1.13 Get the total message unread count of all conversations (supported only in 5.3.425 and later versions)

Attention
  • After you call this API to obtain the total count of unread messages for all conversations, the newest value will be notified to you through the OnTotalUnreadMessageCountChanged callback when unread message count of any conversation changed.
  • The total unread message count excludes muted conversations (conversations whose message receiving option is V2TIM_NOT_RECEIVE_MESSAGE or V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE or V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE_EXCEPT_AT).

◆ GetUnreadMessageCountByFilter()

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

1.14 Get the total message unread count in conversations by filter (supported only in 7.0 and later versions)

Parameters
filterconversation filter
Attention
  • The total unread message count excludes muted conversations (conversations whose message receiving option is V2TIM_NOT_RECEIVE_MESSAGE or V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE or V2TIM_RECEIVE_NOT_NOTIFY_MESSAGE_EXCEPT_AT).

◆ SubscribeUnreadMessageCountByFilter()

virtual void SubscribeUnreadMessageCountByFilter ( const V2TIMConversationListFilter filter)
pure virtual

1.15 Subscribe to changes in the total unread message count for specified conversations (supported only in 7.0 and later versions)

Parameters
filterconversation filter
Attention
  • After you call this API, the newest value of total unread message count for conversations that match the filter parameter will be notified to you through the OnUnreadMessageCountChangedByFilter callback.

◆ UnsubscribeUnreadMessageCountByFilter()

virtual void UnsubscribeUnreadMessageCountByFilter ( const V2TIMConversationListFilter filter)
pure virtual

1.16 Unsubscribe from changes in the total unread message count for specified conversations (supported only in 7.0 and later versions)

Parameters
filterconversation filter

◆ CleanConversationUnreadMessageCount()

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

1.17 Clear unread messages of a conversation (supported only in 7.1 and later versions)

Parameters
conversationIDUnique ID of a conversation. For one-to-one chats, the value format is String.format("c2c_%s", "userID"). For group chats, the value format is String.format("group_%s", "groupID").
cleanTimestampThe timestamp (seconds) for clearing unread messages (only valid for one-to-one chats). Unread messages before the timestamp will be cleared. If the value is 0, all unread messages of the specified conversation will be cleared, and the unread message count will be set to 0.
cleanSequenceThe sequence for clearing unread messages (only valid for group chats). Unread messages before the specified message sequence will be cleared. If the value is 0, all unread messages of the specified conversation will be cleared, and the unread message count will be set to 0.
Attention
  • If you want to clear the unread messages of all a one-to-one conversation, set conversationID to "c2c", i.e., don't specify the userID.
  • If you want to clear the unread messages of all group conversations, set conversationID to "group", i.e., don't specify the groupID.
  • If you want to clear the unread messages of all conversations, set conversationID to "".
  • After the API is successfully called, you will receive the onConversationChanged callback that carries the latest unread message number of the corresponding conversation.

◆ CreateConversationGroup()

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

2.1 Create a conversation group.

Parameters
groupNamegroup name(Required, length must be greater than 0, max 32 bytes)
conversationIDListconversation ID list(Required, cannot be empty)
Attention
A maximum of 20 conversation groups are supported. Please delete the groups that are no longer in use.

◆ GetConversationGroupList()

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

2.2 Get a list of conversation groups.

Attention
This API pulls locally cached conversation groups. It is recommended to call after onSyncServerFinish.

◆ DeleteConversationGroup()

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

2.3 Delete a conversation group.

◆ RenameConversationGroup()

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

2.4 Rename a conversation group.

◆ AddConversationsToGroup()

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

2.5 Add conversations to a group.

◆ DeleteConversationsFromGroup()

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

2.6 Remove conversations from a group.