NIMEventSubscribeManagerProtocol.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. //
  2. // NIMEventSubscribeManagerProtocol.h
  3. // NIMLib
  4. //
  5. // Created by Netease.
  6. // Copyright (c) 2017 Netease. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. @class NIMSubscribeEvent;
  10. @class NIMSubscribeRequest;
  11. NS_ASSUME_NONNULL_BEGIN
  12. /**
  13. * 事件普通回调
  14. *
  15. * @param error 错误信息,如果成功,error 为 nil
  16. * @param event 事件,填充了发布的时间
  17. */
  18. typedef void(^NIMEventSubscribeBlock)(NSError * __nullable error, NIMSubscribeEvent * __nullable event);
  19. /**
  20. * 订阅/取消订阅事件回调
  21. *
  22. * @param error 错误信息,如果成功,error 为 nil,
  23. * @param failedPublishers 失败的发布者 Id, 为 nil 则全部订阅/取消订阅成功
  24. */
  25. typedef void(^NIMEventSubscribeResponseBlock)(NSError * __nullable error, NSArray * __nullable failedPublishers);
  26. /**
  27. * 事件查询回调
  28. *
  29. * @param error 错误信息,如果成功,error 为 nil,
  30. * @param results NIMSubscribeResult 数组 本账号订阅的事件详情,包括订阅了谁,订阅的时间以及有效期等等
  31. */
  32. typedef void(^NIMEventSubscribeQueryBlock)(NSError * __nullable error, NSArray * __nullable results);
  33. /**
  34. * 订阅回调
  35. */
  36. @protocol NIMEventSubscribeManagerDelegate <NSObject>
  37. @optional
  38. /**
  39. * 收到所订阅的事件的回调
  40. * @param events 广播的事件 NIMSubscribeEvent 列表
  41. */
  42. - (void)onRecvSubscribeEvents:(NSArray *)events;
  43. @end
  44. /**
  45. * 事件订阅协议
  46. */
  47. @protocol NIMEventSubscribeManager <NSObject>
  48. /**
  49. * 发布事件
  50. *
  51. * @param event 需要广播的事件,事件可被其他人订阅
  52. * @param completion 完成回调
  53. */
  54. - (void)publishEvent:(NIMSubscribeEvent *)event
  55. completion:(nullable NIMEventSubscribeBlock)completion;
  56. /**
  57. * 订阅事件
  58. *
  59. * @param request 订阅请求
  60. * @param completion 完成回调
  61. * @discussion 请求中必需填写 type,expiry,publishers 字段
  62. */
  63. - (void)subscribeEvent:(NIMSubscribeRequest *)request
  64. completion:(nullable NIMEventSubscribeResponseBlock)completion;
  65. /**
  66. * 取消订阅事件
  67. *
  68. * @param request 取消订阅请求
  69. * @param completion 完成回调
  70. * @discussion 请求中必须填写 type 字段 , 如果不填写 publishers 字段,则取消指定事件的全部订阅关系
  71. */
  72. - (void)unSubscribeEvent:(NIMSubscribeRequest *)request
  73. completion:(nullable NIMEventSubscribeResponseBlock)completion;
  74. /**
  75. * 查询订阅事件
  76. *
  77. * @param request 查询请求
  78. * @param completion 完成回调
  79. * @discussion 请求中必须填写 type 字段 和 publishers 字段
  80. */
  81. - (void)querySubscribeEvent:(NIMSubscribeRequest *)request
  82. completion:(nullable NIMEventSubscribeQueryBlock)completion;
  83. /**
  84. * 添加通知对象
  85. *
  86. * @param delegate 通知对象
  87. */
  88. - (void)addDelegate:(id<NIMEventSubscribeManagerDelegate>)delegate;
  89. /**
  90. * 移除通知对象
  91. *
  92. * @param delegate 通知对象
  93. */
  94. - (void)removeDelegate:(id<NIMEventSubscribeManagerDelegate>)delegate;
  95. @end
  96. NS_ASSUME_NONNULL_END