服务端会话服务

服务端会话服务与本地最近会话不同,其提供了新的会话列表获取服务,需要从云端拉取,不支持同步到本地最近会话列表。

获取会话列表

获取服务端会话列表,不依赖本地;

@protocol NIMConversationManager <NSObject>
/**
*  从服务端分页获取历史会话列表
*
*  @param option 分页查询选项,可为空,空时默认全量获取
*
*  @param completion 完成回调
*/
- (void)fetchServerSessions:(nullable NIMFetchServerSessionOption *)option
                 completion:(nullable NIMFetchRecentSessionsHistoryBlock)completion;
@end

属性列表

参数 类型 说明
option NIMFetchServerSessionOption 获取最近会话选项
completion NIMFetchRecentSessionsHistoryBlock 结果列表

示例

// 下一页
NIMFetchServerSessionOption * option = [[NIMFetchServerSessionOption alloc] init];
option.needLastMessage = needLastMsg;
option.minTimestamp = min;
option.maxTimestamp = currentMin - 1;
option.limit = limit;
[[NIMSDK sharedSDK].conversationManager fetchServerSessions:option completion:^(NSError * _Nullable error, NSArray<NIMRecentSession *> * _Nullable recentSessions, BOOL hasMore) {}];

获取指定会话

获取指定服务端会话详细信息;

@protocol NIMConversationManager <NSObject>
/**
 *  从服务端获取会话信息
 *
 *  @param session 目标会话
 *
 *  @param completion 完成回调
 */
- (void)fetchServerSessionBySession:(NIMSession *)session
                         completion:(nullable NIMFetchRecentSessionHistoryBlock)completion;
@end

属性列表

参数 类型 说明
session NIMSession 目标会话
completion NIMFetchRecentSessionHistoryBlock 会话信息

示例

[[NIMSDK sharedSDK].conversationManager fetchServerSessionBySession:recent.session completion:^(NSError * _Nullable error, NIMRecentSession * _Nullable recentSession) {}];

修改服务端会话扩展

更新服务端会话扩展;

@protocol NIMConversationManager <NSObject>
/**
*  更新服务端获取会话扩展信息
*
*  @param ext        扩展信息
*
*  @param session    目标最近会话
*
*  @param completion 完成回调
*/
- (void)updateServerSessionExt:(NSString *)ext
                       session:(NIMSession *)session
                    completion:(nullable NIMRemoteRecentSessionBlock)completion;
@end

属性列表

参数 类型 说明
ext NSString 新的扩展值
session NIMSession 目标会话
completion NIMRemoteRecentSessionBlock 完成回调

示例

 [[NIMSDK sharedSDK].conversationManager updateServerSessionExt:@"newServerExt" session:recentSession.session completion:^(NSError * _Nullable error) { }];

删除服务端会话

@protocol NIMConversationManager <NSObject>
/**
*  删除服务端
*
*  @param sessions 目标会话
*
*  @param completion 完成回调
*/
- (void)deleteServerSessions:(NSArray<NIMSession *> *)sessions
                  completion:(nullable NIMRemoteRecentSessionBlock)completion;
@end

属性列表

参数 类型 说明
sessions NSArray 目标会话列表
completion NIMRemoteRecentSessionBlock 完成回调

示例

[[NIMSDK sharedSDK].conversationManager deleteServerSessions:@[recentSession.session] completion:^(NSError * _Nullable error) {}];