2025-10-09 16:48:46 +08:00

128 lines
2.4 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// NIMSubscribeEvent.h
// NIMLib
//
// Created by Netease.
// Copyright © 2017 Netease. All rights reserved.
//
#import "NIMLoginClient.h"
NS_ASSUME_NONNULL_BEGIN
/**
* 预定义事件列表
*/
typedef NS_ENUM(NSInteger,NIMSubscribeSystemEventType){
/**
* 在线状态事件
*/
NIMSubscribeSystemEventTypeOnline = 1,
};
/**
* 预定义在线事件值
*/
typedef NS_ENUM(NSInteger,NIMSubscribeEventOnlineValue){
/**
* 登录
*/
NIMSubscribeEventOnlineValueLogin = 1,
/**
* 登出
*/
NIMSubscribeEventOnlineValueLogout = 2,
/**
* 断开连接
*/
NIMSubscribeEventOnlineValueDisconnected = 3,
};
/**
* 订阅事件
*/
@interface NIMSubscribeEvent : NSObject
/**
* 事件 Id, 发布时无需填写
*/
@property (nonatomic, copy, readonly) NSString *eventId;
/**
* 事件发布者,发布时无须填写
*/
@property (nullable, nonatomic, copy, readonly) NSString *from;
/**
* 事件发布的时间,发布时无须填写
*/
@property (nonatomic, assign, readonly) NSTimeInterval timestamp;
/**
* 事件类型199999 为云信保留类型,目前只支持预定义事件, 见 NIMSubscribeSystemEventType
*/
@property (nonatomic, assign) NSInteger type;
/**
* 事件的状态值,预定义事件值可以是内置 NIMSubscribeEventOnlineValue 枚举, 也可以是用户自定义
*/
@property (nonatomic, assign) NSInteger value;
/**
* 事件的有效期,范围为 60 秒到 7 天, 数值单位为秒,默认为 7 天
*/
@property (nonatomic, assign) NSTimeInterval expiry;
/**
* 事件是否只广播给在线用户
* @discussion 默认为YES 如果这个值为NO,事件会在订阅者登录后同步
*/
@property (nonatomic, assign) BOOL sendToOnlineUsersOnly;
/**
* 事件是否支持多端同步
* @discussion 默认为YES。
*/
@property (nonatomic, assign) BOOL syncEnabled;
/**
* 订阅事件的额外信息,当订阅事件为 NIMSubscribeSystemEventTypeOnline 时,为 NIMSubscribeOnlineInfo
*/
@property (nonatomic, strong, readonly) id subscribeInfo;
/**
* 事件扩展字段,最大长度为 4K, 写方法
*
* @param ext 扩展字符串
*/
- (void)setExt:(NSString *)ext;
/**
* 事件扩展字段,读取方法
*
* @param type 客户端类型
*
* @return 扩展字段
*/
- (nullable NSString *)ext:(NIMLoginClientType)type;
@end
NS_ASSUME_NONNULL_END