NIMRTSConferenceManagerProtocol.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. //
  2. // NIMRTSConferenceManagerProtocol.h
  3. // NIMAVChat
  4. //
  5. // Created by Netease.
  6. // Copyright (c) 2016 Netease. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "NIMAVChatDefs.h"
  10. NS_ASSUME_NONNULL_BEGIN
  11. @class NIMRTSConference;
  12. @class NIMRTSConferenceData;
  13. /**
  14. * 多方实时会话相关回调
  15. */
  16. @protocol NIMRTSConferenceManagerDelegate <NSObject>
  17. @optional
  18. /**
  19. * 预订多方实时会话结果回调
  20. *
  21. * @param conference 预订的会话
  22. * @param result 结果. nil 表示预订成功
  23. */
  24. - (void)onReserveConference:(NIMRTSConference *)conference
  25. result:(nullable NSError *)result;
  26. /**
  27. * 加入多方实时会话结果回调
  28. *
  29. * @param conference 加入的会话
  30. * @param result 结果. nil 表示加入成功
  31. */
  32. - (void)onJoinConference:(NIMRTSConference *)conference
  33. result:(nullable NSError *)result;
  34. /**
  35. * 离开了多人实时会话(发生了错误)
  36. *
  37. * @param conference 离开的会话
  38. * @param error 错误信息
  39. */
  40. - (void)onLeftConference:(NIMRTSConference *)conference
  41. error:(NSError *)error;
  42. /**
  43. * 用户加入了多方实时会话
  44. *
  45. * @param uid 用户 id
  46. * @param conference 用户加入的会话
  47. */
  48. - (void)onUserJoined:(NSString *)uid
  49. conference:(NIMRTSConference *)conference;
  50. /**
  51. * 用户离开了多方实时会话
  52. *
  53. * @param uid 用户 id
  54. * @param conference 用户离开的会话
  55. * @param reason 用户离开的原因
  56. */
  57. - (void)onUserLeft:(NSString *)uid
  58. conference:(NIMRTSConference *)conference
  59. reason:(NIMRTSConferenceUserLeaveReason)reason;
  60. @end
  61. /**
  62. * 实时会话协议
  63. */
  64. @protocol NIMRTSConferenceManager <NSObject>
  65. /**
  66. * 预订多方实时会话
  67. *
  68. * @param conference 需要预订的会话
  69. *
  70. * @return 接口调用的结果. 该结果只是表示当前这个函数调用是否成功,需要后续的回调才能判断预订会话是否成功
  71. */
  72. - (nullable NSError *)reserveConference:(NIMRTSConference *)conference;
  73. /**
  74. * 加入多方实时会话
  75. *
  76. * @param conference 需要加入的会话
  77. *
  78. * @return 接口调用的结果. 该结果只是表示当前这个函数调用是否成功,需要后续的回调才能判断加入会话是否成功
  79. */
  80. - (nullable NSError *)joinConference:(NIMRTSConference *)conference;
  81. /**
  82. * 离开多方实时会话
  83. *
  84. * @param conference 需要离开的会话
  85. *
  86. * @return 接口调用的结果
  87. *
  88. */
  89. - (nullable NSError *)leaveConference:(NIMRTSConference *)conference;
  90. /**
  91. * 发送多方实时会话数据
  92. *
  93. * @param data 需要发送的实时会话数据, 数据长度不允许超过50KB, 推荐不超过4KB; 发送数据的周期建议控制在50ms以上
  94. *
  95. * @return 是否允许发送
  96. *
  97. * @discussion 被叫在响应请求之前不要调用挂断接口
  98. */
  99. - (BOOL)sendRTSData:(NIMRTSConferenceData *)data;
  100. /**
  101. * 添加多方实时会话委托
  102. *
  103. * @param delegate 多方实时会话委托
  104. */
  105. - (void)addDelegate:(id<NIMRTSConferenceManagerDelegate>)delegate;
  106. /**
  107. * 移除多方实时会话委托
  108. *
  109. * @param delegate 多方实时会话委托
  110. */
  111. - (void)removeDelegate:(id<NIMRTSConferenceManagerDelegate>)delegate;
  112. @end
  113. NS_ASSUME_NONNULL_END