NIMConversationManager Protocol Reference

Conforms to NSObject
Declared in NIMConversationManagerProtocol.h

Overview

会话管理器

– deleteMessage: required method

删除某条消息

- (void)deleteMessage:(NIMMessage *)message

Parameters

message

待删除的聊天消息

Discussion

删除某条消息

Declared In

NIMConversationManagerProtocol.h

– deleteMessage:option: required method

删除某条消息

- (void)deleteMessage:(NIMMessage *)message option:(nullable NIMDeleteMessageOption *)option

Parameters

message

待删除的聊天消息

option

删除消息选项

Discussion

删除某条消息

Declared In

NIMConversationManagerProtocol.h

– deleteMessageFromServer:ext:completion: required method

删除本地某条消息,同时删除服务端历史、漫游

- (void)deleteMessageFromServer:(NIMMessage *)message ext:(nullable NSString *)ext completion:(nullable NIMRemoveRemoteMessageBlock)block

Parameters

message

待删除的聊天消息

ext

扩展字段

block

完成回调

Discussion

删除本地某条消息,同时删除服务端历史、漫游

Declared In

NIMConversationManagerProtocol.h

– deleteAllmessagesInSession:option: required method

删除某个会话的所有消息

- (void)deleteAllmessagesInSession:(NIMSession *)session option:(nullable NIMDeleteMessagesOption *)option

Parameters

session

待删除会话

option

删除消息选项

Discussion

删除某个会话的所有消息

Declared In

NIMConversationManagerProtocol.h

– deleteAllMessages: required method

删除所有会话消息

- (void)deleteAllMessages:(nullable NIMDeleteMessagesOption *)option

Parameters

option

删除消息选项

Discussion

删除所有会话消息

调用这个接口只会触发allMessagesDeleted这个回调,其他针对单个recentSession的回调都不会被调用

Declared In

NIMConversationManagerProtocol.h

– deleteMessagesInSession:option:completion: required method

删除指定范围内的消息,如指定时间范围

- (void)deleteMessagesInSession:(NIMSession *)session option:(nullable NIMBatchDeleteMessagesOption *)option completion:(nullable NIMBatchDeleteMessagesBlock)block

Parameters

session

目标会话

option

删除消息选项

block

完成回调

Discussion

删除指定范围内的消息,如指定时间范围

Declared In

NIMConversationManagerProtocol.h

– deleteAllRemoteMessagesInSession:options:completion: required method

删除某个会话的所有本地和云端的历史消息。删除后,查询云端消息历史的接口将不能返回这些消息。

- (void)deleteAllRemoteMessagesInSession:(NIMSession *)session options:(NIMSessionDeleteAllRemoteMessagesOptions *)options completion:(NIMSessionDeleteAllRemoteMessagesCompletionBlock)completion

Parameters

session

目标会话

options

清空消息历史的可选项

block

清空完成后的回调

Discussion

删除某个会话的所有本地和云端的历史消息。删除后,查询云端消息历史的接口将不能返回这些消息。

Declared In

NIMConversationManagerProtocol.h

– deleteRemoteMessages:exts:completion: required method

批量删除消息,同时删除服务端和本地。所有传入的消息必需属于同一个会话。

- (void)deleteRemoteMessages:(NSArray<NIMMessage*> *)messages exts:(nullable NSDictionary<NSString*,NSString*> *)exts completion:(nullable NIMDeleteRemoteMessagesCompletionBlock)completion

Parameters

messages

消息数组

exts

key为消息id,value为删除该消息所对应的扩展信息

completion

删除完成的回调

Discussion

批量删除消息,同时删除服务端和本地。所有传入的消息必需属于同一个会话。

Declared In

NIMConversationManagerProtocol.h

– addEmptyRecentSessionBySession: required method

增加某个最近会话

- (void)addEmptyRecentSessionBySession:(NIMSession *)session

Parameters

session

待增加的最近会话

Discussion

增加某个最近会话

异步方法

Declared In

NIMConversationManagerProtocol.h

– addEmptyRecentSessionBySession:option: required method

增加某个最近会话

- (void)addEmptyRecentSessionBySession:(NIMSession *)session option:(NIMAddEmptyRecentSessionBySessionOption *)option

Parameters

session

待增加的最近会话

option

配置项

Discussion

增加某个最近会话

异步方法

Declared In

NIMConversationManagerProtocol.h

– deleteRecentSession: required method

删除某个最近会话

- (void)deleteRecentSession:(NIMRecentSession *)recentSession

Parameters

recentSession

待删除的最近会话

Discussion

删除某个最近会话

异步方法,删除最近会话,但保留会话内消息

Declared In

NIMConversationManagerProtocol.h

– deleteRecentSession:option:completion: required method

删除某个最近会话

- (void)deleteRecentSession:(NIMRecentSession *)recentSession option:(NIMDeleteRecentSessionOption *)option completion:(NIMRemoveRemoteSessionBlock)completion

Parameters

recentSession

待删除的最近会话

option

是否删除漫游选项,isDeleteRoamMessage默认为NO

completion

结果回调

Discussion

删除某个最近会话

异步方法,删除最近会话,但保留会话内消息

Declared In

NIMConversationManagerProtocol.h

– markAllMessagesRead required method

设置所有会话消息为已读

- (void)markAllMessagesRead

Discussion

设置所有会话消息为已读

异步方法,消息会标记为设置的状态。不会触发单条 recentSession 更新的回调,但会触发回调 - (void)allMessagesRead

Declared In

NIMConversationManagerProtocol.h

– markMessagesReadOfType: required method

设置会话消息为已读

- (void)markMessagesReadOfType:(NIMSessionType)type

Parameters

type

会话类型

Discussion

设置会话消息为已读

异步方法,消息会标记为设置的状态。不会触发单条 recentSession 更新的回调,但会触发回调 - (void)messagesReadOfType:

Declared In

NIMConversationManagerProtocol.h

– batchMarkMessagesReadInSessions: required method

批量设置多个会话消息已读

- (void)batchMarkMessagesReadInSessions:(NSArray<NIMSession*> *)sessions

Discussion

批量设置多个会话消息已读

异步方法。不会触发单条 recentSession 更新的回调,但会触发回调 - onBatchMarkMessagesReadInSessions:

Declared In

NIMConversationManagerProtocol.h

– batchMarkMessagesReadInSessions:completion: required method

批量设置多个会话消息已读

- (void)batchMarkMessagesReadInSessions:(NSArray<NIMSession*> *)sessions completion:(NIMBatchSendACKSessionsBlock)completion

Parameters

completion

结果回调。部分成功时,可以从NIMBatchSendACKSessionsBlock的sessions参数得到失败的会话

Discussion

批量设置多个会话消息已读

异步方法。不会触发单条 recentSession 更新的回调,但会触发回调 - onBatchMarkMessagesReadInSessions:

Declared In

NIMConversationManagerProtocol.h

– markAllMessagesReadInSession: required method

设置一个会话里所有消息置为已读

- (void)markAllMessagesReadInSession:(NIMSession *)session

Parameters

session

需设置的会话

Discussion

设置一个会话里所有消息置为已读

异步方法,消息会标记为设置的状态

Declared In

NIMConversationManagerProtocol.h

– markAllMessagesReadInSession:completion: required method

设置一个会话里所有消息置为已读

- (void)markAllMessagesReadInSession:(NIMSession *)session completion:(NIMSendACKSessionsBlock)completion

Parameters

session

结果回调

Discussion

设置一个会话里所有消息置为已读

异步方法,消息会标记为设置的状态

Declared In

NIMConversationManagerProtocol.h

– updateMessage:forSession:completion: required method

更新本地已存的消息记录

- (void)updateMessage:(NIMMessage *)message forSession:(NIMSession *)session completion:(nullable NIMUpdateMessageBlock)completion

Parameters

message

需要更新的消息

session

需要更新的会话

completion

完成后的回调

Discussion

更新本地已存的消息记录

为了保证存储消息的完整性,提供给上层调用的消息更新接口只允许更新如下字段:所有消息的本地拓展字段(LocalExt)和自定义消息的消息对象(messageObject)

Declared In

NIMConversationManagerProtocol.h

– saveMessage:forSession:completion: required method

写入消息

- (void)saveMessage:(NIMMessage *)message forSession:(NIMSession *)session completion:(nullable NIMUpdateMessageBlock)completion

Parameters

message

需要更新的消息

session

需要更新的会话

completion

完成后的回调

Discussion

写入消息

当保存消息成功之后,会收到 NIMChatManagerDelegate 中的 onRecvMessages: 回调。不允许插入已存在的消息

Declared In

NIMConversationManagerProtocol.h

– importRecentSessions:completion: required method

导入最近会话

- (void)importRecentSessions:(NSArray<NIMImportedRecentSession*> *)importedRecentSession completion:(nullable NIMImportRecentSessionsBlock)completion

Parameters

importedRecentSession

待导入的会话集合

completion

完成后的回调

Discussion

导入最近会话

当导入最近会话成功之后,不会收到 NIMChatManagerDelegate 中的 recentSession 变化的回调,请直接在 completion 中做处理。不允许插入已经存在的最近会话。

Declared In

NIMConversationManagerProtocol.h

– messagesInSession:message:limit: required method

从本地db读取一个会话里某条消息之前的若干条的消息

- (nullable NSArray<NIMMessage*> *)messagesInSession:(NIMSession *)session message:(nullable NIMMessage *)message limit:(NSInteger)limit

Parameters

session

消息所属的会话

message

当前最早的消息,没有则传入nil

limit

个数限制

Return Value

消息列表,按时间从小到大排列

Discussion

从本地db读取一个会话里某条消息之前的若干条的消息

Declared In

NIMConversationManagerProtocol.h

– messagesInSession:message:limit:completion: required method

从本地db读取一个会话里某条消息之前的若干条的消息

- (void)messagesInSession:(NIMSession *)session message:(nullable NIMMessage *)message limit:(NSInteger)limit completion:(NIMFetchMessageHistoryBlock)completion

Parameters

session

消息所属的会话

message

当前最早的消息,没有则传入nil

limit

个数限制

completion

完成后的回调

Discussion

从本地db读取一个会话里某条消息之前的若干条的消息

Declared In

NIMConversationManagerProtocol.h

– messagesInSession:messageIds: required method

根据消息Id获取消息

- (nullable NSArray<NIMMessage*> *)messagesInSession:(NIMSession *)session messageIds:(NSArray<NSString*> *)messageIds

Parameters

session

消息所属会话结合

messageIds

消息Id集合

Return Value

消息列表,按时间从小到大排列

Discussion

根据消息Id获取消息

Declared In

NIMConversationManagerProtocol.h

– allUnreadCount required method

获取所有未读数

- (NSInteger)allUnreadCount

Return Value

未读数

Discussion

获取所有未读数

只能在主线程调用,包括忽略提醒的会话

Declared In

NIMConversationManagerProtocol.h

– unreadCountOfType: required method

按 SessionType 获取未读数

- (NSInteger)unreadCountOfType:(NIMSessionType)type

Parameters

type

会话类型

Return Value

未读数

Discussion

按 SessionType 获取未读数

只能在主线程调用,包括忽略提醒的会话

Declared In

NIMConversationManagerProtocol.h

– allUnreadCount: required method

获取所有需要通知/不需要通知的最近会话未读数

- (NSInteger)allUnreadCount:(BOOL)notify

Parameters

notify

是否需要通知

Return Value

未读数

Discussion

获取所有需要通知/不需要通知的最近会话未读数

群只有 notify state != NIMTeamNotifyStateNone 才算是不允许通知

Declared In

NIMConversationManagerProtocol.h

– allRecentSessions required method

获取所有最近会话。

- (nullable NSArray<NIMRecentSession*> *)allRecentSessions

Return Value

最近会话列表

Discussion

获取所有最近会话。

SDK 以 map 的形式保存 sessions,调用这个方法时将进行排序,数据量较大 (上万) 时会比较耗时。 该方法默认是同步查询所有sessions,当数据量较大(上万)会比较耗时,可能会卡主线程,这种情况下 用户可以配置NIMSDKConfig中的asyncLoadRecentSessionEnabled属性为YES,此时该接口可以先返回 100条最近会话,等全部加载完会回调didLoadAllRecentSessionCompletion,此后再调用该接口可以全量返回 所有会话,用户需要在didLoadAllRecentSessionCompletion回调中及时更新UI展示。

Declared In

NIMConversationManagerProtocol.h

– allRecentSessionsWithOption: required method

获取所有最近会话

- (nullable NSArray<NIMRecentSession*> *)allRecentSessionsWithOption:(NIMRecentSessionOption *)option

Return Value

最近会话列表

Discussion

获取所有最近会话

SDK 以 map 的形式保存 sessions,调用这个方法时将进行排序,数据量较大 (上万) 时会比较耗时。 通过该接口获取的最近会话列表与allRecentSessions接口不同,是基于allRecentSessions接口筛选类型之后重新生成的新对象 需要用户自行在外部管理,所有回调不回回调该接口查询的任何会话

Declared In

NIMConversationManagerProtocol.h

– recentSessionBySession: required method

根据当前 session 返回对应的最近会话信息

- (nullable NIMRecentSession *)recentSessionBySession:(NIMSession *)session

Parameters

session

会话

Return Value

最近会话信息,如果找不到则返回 nil

Discussion

根据当前 session 返回对应的最近会话信息

Declared In

NIMConversationManagerProtocol.h

– fetchServerSessions:completion: required method

从服务端分页获取历史会话列表

- (void)fetchServerSessions:(nullable NIMFetchServerSessionOption *)option completion:(nullable NIMFetchRecentSessionsHistoryBlock)completion

Parameters

option

分页查询选项,可为空,空时默认全量获取

completion

完成回调

Discussion

从服务端分页获取历史会话列表

Declared In

NIMConversationManagerProtocol.h

– fetchServerSessionBySession:completion: required method

从服务端获取会话信息

- (void)fetchServerSessionBySession:(NIMSession *)session completion:(nullable NIMFetchRecentSessionHistoryBlock)completion

Parameters

session

目标会话

completion

完成回调

Discussion

从服务端获取会话信息

Declared In

NIMConversationManagerProtocol.h

– updateServerSessionExt:session:completion: required method

更新服务端获取会话扩展信息

- (void)updateServerSessionExt:(NSString *)ext session:(NIMSession *)session completion:(nullable NIMRemoteRecentSessionBlock)completion

Parameters

ext

扩展信息

session

目标最近会话

completion

完成回调

Discussion

更新服务端获取会话扩展信息

Declared In

NIMConversationManagerProtocol.h

– deleteServerSessions:completion: required method

删除服务端

- (void)deleteServerSessions:(NSArray<NIMSession*> *)sessions completion:(nullable NIMRemoteRecentSessionBlock)completion

Parameters

sessions

目标会话

completion

完成回调

Discussion

删除服务端

Declared In

NIMConversationManagerProtocol.h

– fetchMessageHistory:option:result: required method

从服务器上获取一个会话里某条消息之前的若干条的消息

- (void)fetchMessageHistory:(NIMSession *)session option:(NIMHistoryMessageSearchOption *)option result:(nullable NIMFetchMessageHistoryBlock)result

Parameters

session

消息所属的会话

option

搜索选项

result

读取的消息列表结果

Discussion

从服务器上获取一个会话里某条消息之前的若干条的消息

此接口不支持查询聊天室消息,聊天室请参考 NIMChatroomManagerProtocol 中的查询消息接口。

Declared In

NIMConversationManagerProtocol.h

– retrieveServerMessages:option:result: required method

根据关键字从服务器上检索消息

- (void)retrieveServerMessages:(NIMSession *)session option:(NIMMessageServerRetrieveOption *)option result:(nullable NIMRetrieveServerMessagesBlock)result

Parameters

session

消息所属的会话

option

检索选项

result

读取的消息列表结果

Discussion

根据关键字从服务器上检索消息

检索消息内容,大小写不敏感;此接口不支持查询聊天室消息,聊天室请参考 NIMChatroomManagerProtocol 中的消息接口。

Declared In

NIMConversationManagerProtocol.h

– retrieveServerMessages:result: required method

根据关键字从服务器上全量检索消息

- (void)retrieveServerMessages:(NIMMessageFullKeywordSearchOption *)option result:(nullable NIMRetrieveServerMessagesBlock)result

Parameters

option

检索选项

result

读取的消息列表结果

Discussion

根据关键字从服务器上全量检索消息

检索消息内容,此接口仅支持查询P2P和群聊消息,不支持聊天室和超大群

Declared In

NIMConversationManagerProtocol.h

– retrieveServerMessagesOrderByTime:result: required method

云端历史消息全文检索(按时间排序,不按会话分组)

- (void)retrieveServerMessagesOrderByTime:(NIMMessageFullKeywordSearchOrderByTimeOption *)option result:(nullable NIMRetrieveServerMessagesBlock)result

Parameters

option

检索选项,其中sessionLimit为无效变量

result

读取的消息列表结果

Discussion

云端历史消息全文检索(按时间排序,不按会话分组)

检索消息内容

Declared In

NIMConversationManagerProtocol.h

– searchMessages:option:result: required method

搜索本地会话内消息

- (void)searchMessages:(NIMSession *)session option:(NIMMessageSearchOption *)option result:(nullable NIMSearchMessageBlock)result

Parameters

session

消息所属的会话

option

搜索选项

result

读取的消息列表结果

Discussion

搜索本地会话内消息

Declared In

NIMConversationManagerProtocol.h

– searchAllMessages:result: required method

全局搜索本地消息

- (void)searchAllMessages:(NIMMessageSearchOption *)option result:(nullable NIMGlobalSearchMessageBlock)result

Parameters

option

搜索选项

result

读取的消息内容

Discussion

全局搜索本地消息

Declared In

NIMConversationManagerProtocol.h

– deleteRemoteSessions:completion: required method

删除服务器端最近会话

- (void)deleteRemoteSessions:(NSArray<NIMSession*> *)sessions completion:(nullable NIMRemoveRemoteSessionBlock)completion

Parameters

sessions

需要删除的会话列表,内部只能是NIMSession

completion

完成的回调

Discussion

删除服务器端最近会话

调用这个接口成功后,当前会话之前的消息都不会漫游到其他端

Declared In

NIMConversationManagerProtocol.h

– deleteSelfRemoteSession:option:completion: required method

清空点对点会话对应服务端的消息

- (void)deleteSelfRemoteSession:(NIMSession *)session option:(nullable NIMClearMessagesOption *)option completion:(nullable NIMRemoveRemoteSessionBlock)completion

Parameters

session

目标会话列表

option

清空消息选项

completion

完成回调

Discussion

清空点对点会话对应服务端的消息

只支持点对点,清空本用户的服务端消息,不影响对方;如果不设置清空选项,服务端默认会同时清空漫游消息;

Declared In

NIMConversationManagerProtocol.h

– updateRecentLocalExt:recentSession: required method

更新最近会话的本地扩展

- (void)updateRecentLocalExt:(nullable NSDictionary *)ext recentSession:(NIMRecentSession *)recentSession

Parameters

ext

扩展信息

recentSession

要更新的最近会话

Discussion

更新最近会话的本地扩展

此扩展不会漫游到其他端,上层需要保证 NSDictionary 可以转换为 JSON。

Declared In

NIMConversationManagerProtocol.h

– exportMeessageInfosWithDelegate:progress:completion: required method

导出历史消息到本地文件

- (void)exportMeessageInfosWithDelegate:(id<NIMExportMessageDelegate>)delegate progress:(NIMExportMessageProgress)progress completion:(NIMExportMessageComletion)completion

Parameters

delegate

自定义消息的处理 delegate

progress

导出进度更新回调

completion

导出完成回调

Discussion

导出历史消息到本地文件

Declared In

NIMConversationManagerProtocol.h

– importMessageInfosAtPath:delegate:progress:completion: required method

导入历史消息

- (void)importMessageInfosAtPath:(NSString *)infoFilePath delegate:(id<NIMImportMessageDelegate>)delegate progress:(NIMImportMessageProgress)progress completion:(NIMImportMessageCompletion)completion

Parameters

infoFilePath

已解码并序列化了的本地历史消息文件路径

delegate

自定义消息的处理 delegate

progress

导入进度更新回调

completion

导入完成回调

Discussion

导入历史消息

Declared In

NIMConversationManagerProtocol.h

– cancelMigrateMessages required method

取消 导出/导入 历史消息操作

- (void)cancelMigrateMessages

Discussion

取消 导出/导入 历史消息操作

Declared In

NIMConversationManagerProtocol.h

– updateMigrateMessageInfoWithURL:key:completion: required method

更新历史消息备份信息

- (void)updateMigrateMessageInfoWithURL:(NSString *)URL key:(NSString *)key completion:(NIMUpdateMigrateMessageCompletion)completion

Parameters

URL

历史消息备份的 URL

key

历史消息备份的加密 key

completion

更新信息的完成回调

Discussion

更新历史消息备份信息

Declared In

NIMConversationManagerProtocol.h

– fetchMigrateMessageInfo: required method

获取历史消息备份信息

- (void)fetchMigrateMessageInfo:(NIMFetchMigrateMessageCompletion)completion

Parameters

completion

获取历史消息备份的完成回调

Discussion

获取历史消息备份信息

Declared In

NIMConversationManagerProtocol.h

– decodeMessageFromData: required method

反序列化消息数据

- (NIMMessage *)decodeMessageFromData:(NSData *)encodeData

Parameters

encodeData

序列化的数据

Return Value

消息对象

Discussion

反序列化消息数据

此接口用于反序列化消息的数据,请与encodeMessageToData配套使用,用于实现消息本地序列化

Declared In

NIMConversationManagerProtocol.h

– encodeMessageToData: required method

序列化消息

- (NSData *)encodeMessageToData:(NIMMessage *)message

Parameters

message

消息对象

Return Value

序列化数据

Discussion

序列化消息

此接口用于序列化消息,请与decodeMessageFromData配套使用,用于实现消息本地序列化

Declared In

NIMConversationManagerProtocol.h

– incompleteSessionInfoBySession:completion: required method

查询漫游消息未完整会话信息

- (void)incompleteSessionInfoBySession:(NIMSession *)session completion:(nullable NIMIncompleteSessionsBlock)completion

Parameters

session

目标会话

completion

结果完成回调

Discussion

查询漫游消息未完整会话信息

Declared In

NIMConversationManagerProtocol.h

– allIncompleteSessionInfos: required method

查询所有漫游消息未漫游完整会话信息

- (void)allIncompleteSessionInfos:(NIMIncompleteSessionsBlock)completion

Parameters

completion

结果完成回调

Discussion

查询所有漫游消息未漫游完整会话信息

Declared In

NIMConversationManagerProtocol.h

– updateIncompleteSessions:completion: required method

更新未漫游完整会话列表

- (void)updateIncompleteSessions:(NSArray<NIMMessage*> *)messages completion:(nullable NIMUpdateIncompleteSessionsBlock)completion

Parameters

messages

消息对象,使用NIMMessage的会话、severId、timestamp、from等去更新b

completion

结果完成回调

Discussion

更新未漫游完整会话列表

Declared In

NIMConversationManagerProtocol.h

– removeIncompleteSessionInfoBySession: required method

根据会话移除未漫游完整会话信息

- (void)removeIncompleteSessionInfoBySession:(NIMSession *)session

Parameters

session

目标会话

Discussion

根据会话移除未漫游完整会话信息

Declared In

NIMConversationManagerProtocol.h

– removeAllIncompleteSessionInfos required method

移除所有未完整会话信息

- (void)removeAllIncompleteSessionInfos

Discussion

移除所有未完整会话信息

Declared In

NIMConversationManagerProtocol.h

– addDelegate: required method

添加通知对象

- (void)addDelegate:(id<NIMConversationManagerDelegate>)delegate

Parameters

delegate

通知对象

Discussion

添加通知对象

Declared In

NIMConversationManagerProtocol.h

– removeDelegate: required method

删除通知对象

- (void)removeDelegate:(id<NIMConversationManagerDelegate>)delegate

Parameters

delegate

通知对象

Discussion

删除通知对象

Declared In

NIMConversationManagerProtocol.h