NIMChatroomEnterRequest.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. //
  2. // NIMChatroomEnterRequest.h
  3. // NIMLib
  4. //
  5. // Created by Netease.
  6. // Copyright © 2015 Netease. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. NS_ASSUME_NONNULL_BEGIN
  10. /**
  11. * 获取聊天室地址回调
  12. */
  13. typedef void(^NIMRequestChatroomAddressesCallback)(NSError * __nullable error,NSArray<NSString *> * __nullable addresses);
  14. /**
  15. * 获取聊天室地址方法
  16. */
  17. typedef void(^NIMRequestChatroomAddressesHandler)(NSString *roomId,NIMRequestChatroomAddressesCallback callback);
  18. /**
  19. * 聊天室独立模式
  20. */
  21. @interface NIMChatroomIndependentMode : NSObject
  22. /**
  23. * 独立模式下的用户名
  24. * @discussion 设置为 nil 情况下,SDK 将使用匿名账号进行登录。在匿名模式下,NIMChatroomEnterRequest 必须设置昵称和头像信息
  25. */
  26. @property (nullable,nonatomic,copy) NSString *username;
  27. /**
  28. * 独立模式下的 Token
  29. * @discussion 当用户名为空时,token 无效
  30. */
  31. @property (nullable,nonatomic,copy) NSString *token;
  32. /**
  33. * 聊天室 AppKey, 可选填, 如果不填则使用云信IM AppKey
  34. */
  35. @property (nullable,nonatomic,copy) NSString *chatroomAppKey;
  36. /**
  37. * 注册获取聊天室地址的回调方法
  38. *
  39. * @param handler 获取聊天室地址信息的方法
  40. * @discussion 在进入聊天室和刷新聊天室 IP 时,SDK 都会主动调用这个回调方法,并传入相应的两个参数 `roomId` 和 `callback`。
  41. * 当前回调接口要求上层使用 `roomId` 走自己的网络请求获取对应聊天室地址并通过 callback 回调给 SDK。
  42. * 需要注意的是无论请求是否成功,都需要通过 callback 进行回调,否则进入聊天室请求将会一直等待。同时此接口只需注册一次即可,多次注册将使用后者覆盖前者。
  43. *
  44. * 参考代码:
  45. *
  46. * [NIMChatroomIndependentMode registerRequestChatroomAddressesHandler:^(NSString * _Nonnull roomId, NIMRequestChatroomAddressesCallback _Nonnull callback) {
  47. * [YourHTTPService request:roomId completion:^(NSError *error,NSArray *addresses)
  48. * {
  49. * //无论请求是否成功,都需要进行回调
  50. * if(callback)
  51. * {
  52. * callback(error,addresses);
  53. * }
  54. * }];
  55. * }];
  56. *
  57. */
  58. + (void)registerRequestChatroomAddressesHandler:(NIMRequestChatroomAddressesHandler)handler;
  59. @end
  60. /**
  61. * 进入聊天室请求
  62. */
  63. @interface NIMChatroomEnterRequest : NSObject
  64. /**
  65. * 聊天室Id
  66. */
  67. @property (nonatomic,copy) NSString *roomId;
  68. /**
  69. * 聊天室昵称
  70. * @discussion 上层可以自主设置在聊天室内的昵称,没有设置则使用用户本身的信息
  71. */
  72. @property (nullable,nonatomic,copy) NSString *roomNickname;
  73. /**
  74. * 聊天室头像
  75. * @discussion 上层可以自主设置在聊天室内的头像,没有设置则使用用户本身的信息
  76. */
  77. @property (nullable,nonatomic,copy) NSString *roomAvatar;
  78. /**
  79. * 本人的聊天室成员信息拓展字段,仅对当次进入有效
  80. */
  81. @property (nullable,nonatomic,copy) NSString *roomExt;
  82. /**
  83. * 聊天室事件通知拓展字段
  84. */
  85. @property (nullable,nonatomic,copy) NSString *roomNotifyExt;
  86. /**
  87. * 聊天室重连次数,默认为三次
  88. * @discussion 设置成 0 后一旦一次连接失败后,SDK 将不在重试。 APP 可以根据自己的需求进行设置
  89. */
  90. @property (nonatomic,assign) NSInteger retryCount;
  91. /**
  92. * 聊天室独立模式
  93. * @discussion 默认为 nil,即聊天室登录需要依赖 IM 登录,只有 IM 登录后才能够登录聊天室。设置后可以在不依赖 IM 通道的情况下进行登录
  94. */
  95. @property (nullable,nonatomic,strong) NIMChatroomIndependentMode *mode;
  96. @end
  97. NS_ASSUME_NONNULL_END