NIMSubscribeEvent.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. //
  2. // NIMSubscribeEvent.h
  3. // NIMLib
  4. //
  5. // Created by Netease.
  6. // Copyright © 2017 Netease. All rights reserved.
  7. //
  8. #import "NIMLoginClient.h"
  9. NS_ASSUME_NONNULL_BEGIN
  10. /**
  11. * 预定义事件列表
  12. */
  13. typedef NS_ENUM(NSInteger,NIMSubscribeSystemEventType){
  14. /**
  15. * 在线状态事件
  16. */
  17. NIMSubscribeSystemEventTypeOnline = 1,
  18. };
  19. /**
  20. * 预定义在线事件值
  21. */
  22. typedef NS_ENUM(NSInteger,NIMSubscribeEventOnlineValue){
  23. /**
  24. * 登录
  25. */
  26. NIMSubscribeEventOnlineValueLogin = 1,
  27. /**
  28. * 登出
  29. */
  30. NIMSubscribeEventOnlineValueLogout = 2,
  31. /**
  32. * 断开连接
  33. */
  34. NIMSubscribeEventOnlineValueDisconnected = 3,
  35. };
  36. /**
  37. * 订阅事件
  38. */
  39. @interface NIMSubscribeEvent : NSObject
  40. /**
  41. * 事件 Id, 发布时无需填写
  42. */
  43. @property (nonatomic, copy, readonly) NSString *eventId;
  44. /**
  45. * 事件发布者,发布时无须填写
  46. */
  47. @property (nullable, nonatomic, copy, readonly) NSString *from;
  48. /**
  49. * 事件发布的时间,发布时无须填写
  50. */
  51. @property (nonatomic, assign, readonly) NSTimeInterval timestamp;
  52. /**
  53. * 事件类型,1~99999 为云信保留类型,目前只支持预定义事件, 见 NIMSubscribeSystemEventType
  54. */
  55. @property (nonatomic, assign) NSInteger type;
  56. /**
  57. * 事件的状态值,预定义事件值可以是内置 NIMSubscribeEventOnlineValue 枚举, 也可以是用户自定义
  58. */
  59. @property (nonatomic, assign) NSInteger value;
  60. /**
  61. * 事件的有效期,范围为 60 秒到 7 天, 数值单位为秒,默认为 7 天
  62. */
  63. @property (nonatomic, assign) NSTimeInterval expiry;
  64. /**
  65. * 事件是否只广播给在线用户
  66. * @discussion 默认为YES 如果这个值为NO,事件会在订阅者登录后同步
  67. */
  68. @property (nonatomic, assign) BOOL sendToOnlineUsersOnly;
  69. /**
  70. * 事件是否支持多端同步
  71. * @discussion 默认为YES。
  72. */
  73. @property (nonatomic, assign) BOOL syncEnabled;
  74. /**
  75. * 订阅事件的额外信息,当订阅事件为 NIMSubscribeSystemEventTypeOnline 时,为 NIMSubscribeOnlineInfo
  76. */
  77. @property (nonatomic, strong, readonly) id subscribeInfo;
  78. /**
  79. * 事件扩展字段,最大长度为 4K, 写方法
  80. *
  81. * @param ext 扩展字符串
  82. */
  83. - (void)setExt:(NSString *)ext;
  84. /**
  85. * 事件扩展字段,读取方法
  86. *
  87. * @param type 客户端类型
  88. *
  89. * @return 扩展字段
  90. */
  91. - (nullable NSString *)ext:(NIMLoginClientType)type;
  92. @end
  93. NS_ASSUME_NONNULL_END