NIMSDK-iOS
载入中...
搜索中...
未找到
NIMSignalManagerProtocol.h
浏览该文件的文档.
1//
2// NIMSignalManagerProtocol.h
3// NIMLib
4//
5// Created by taojinliang on 2018/10/24.
6// Copyright © 2018 Netease. All rights reserved.
7//
8
9#import <Foundation/Foundation.h>
10
26@class NIMSignalingAcceptJoinRequest;
31
32NS_ASSUME_NONNULL_BEGIN
33
34/**
35 * 创建频道回调
36 *
37 * @param error 错误信息,如果成功,error 为 nil
38 * @param response 频道相关信息
39 */
40typedef void(^NIMSignalingCreateChannelBlock)(NSError * __nullable error, NIMSignalingChannelInfo * __nullable response);
41
42
43/**
44 * 加入频道回调
45 *
46 * @param error 错误信息,如果成功,error 为 nil
47 * @param response 频道相关信息
48 */
49typedef void(^NIMSignalingJoinChannelBlock)(NSError * __nullable error, NIMSignalingChannelDetailedInfo * __nullable response);
50
51
52/**
53 * 呼叫回调
54 *
55 * @param error 错误信息,如果成功,error 为 nil
56 * @param response 频道相关信息
57 */
58typedef void(^NIMSignalingCallBlock)(NSError * __nullable error, NIMSignalingChannelDetailedInfo * __nullable response);
59
60/**
61 * 接受回调
62 *
63 * @param error 错误信息,如果成功,error 为 nil
64 * @param response 频道相关信息
65 */
66typedef void(^NIMSignalingAcceptBlock)(NSError * __nullable error, NIMSignalingChannelDetailedInfo * __nullable response);
67
68
69/**
70 * 信令操作回调
71 *
72 * @param error 错误信息,如果成功,error 为 nil
73 */
74typedef void(^NIMSignalingOperationBlock)(NSError * __nullable error);
75
76/**
77 * 频道查询回调
78 *
79 * @param error 错误信息,如果成功,error 为 nil
80 */
81typedef void(^NIMSignalingQueryChannelBlock)(NSError * __nullable error, NIMSignalingChannelDetailedInfo * __nullable response);
82
83
84/**
85 * 呼叫回调
86 *
87 * @param error 错误信息,如果成功,error 为 nil
88 * @param response 频道相关信息
89 */
90typedef void(^NIMSignalingOptimizationCallBlock)(NSError * __nullable error, NIMSignalingChannelCompositionInfo * __nullable response);
91
92/**
93 * 频道类型
94 */
95typedef NS_ENUM(NSInteger, NIMSignalingChannelType){
96 /**
97 * 音频类型
98 */
100 /**
101 * 视频类型
102 */
104 /**
105 * 自定义类型
106 */
108};
109
110
111/**
112 * 信令通知事件定义类型
113 */
114typedef NS_ENUM(NSInteger, NIMSignalingEventType){
115 /**
116 * 关闭频道
117 */
119 /**
120 * 加入频道
121 */
123 /**
124 * 邀请加入频道
125 */
127 /**
128 * 取消邀请
129 */
131 /**
132 * 拒绝加入频道
133 */
135 /**
136 * 接受邀请
137 */
139 /**
140 * 离开频道
141 */
143 /**
144 * 自定义事件
145 */
147
148};
149
150
151/**
152 * 通用音视频信令相关回调
153 */
154@protocol NIMSignalManagerDelegate <NSObject>
155
156@optional
157
158/**
159 在线通知
160
161 @param eventType 信令操作事件类型
162 @param notifyResponse 信令通知回调数据
163 @discussion 用于通知信令相关的在线通知 NIMSignalingEventType 1-8有效
164 */
165- (void)nimSignalingOnlineNotifyEventType:(NIMSignalingEventType)eventType
166 response:(NIMSignalingNotifyInfo *)notifyResponse;
167
168/**
169 在线多端同步通知
170
171 @param eventType 信令操作事件类型:这里只有接受和拒绝
172 @param notifyResponse 信令通知回调数据
173 @discussion 用于通知信令相关的多端同步通知。比如自己在手机端接受邀请,PC端会同步收到这个通知 NIMSignalingEventType 5-6有效
174 */
175- (void)nimSignalingMultiClientSyncNotifyEventType:(NIMSignalingEventType)eventType
176 response:(NIMSignalingNotifyInfo *)notifyResponse;
177
178
179/**
180 离线通知
181
182 @param notifyResponse 信令通知回调数据
183 @discussion 用于通知信令相关的离线通知信息。需要用户在调用相关接口时,打开存离线的开关。如果用户已经接收消息,该通知会在服务器标记已读,之后不会再收到该消息 NIMSignalingEventType 1-7有效
184 */
185- (void)nimSignalingOfflineNotify:(NSArray <NIMSignalingNotifyInfo *> *)notifyResponse;
186
187/**
188 频道列表同步通知
189
190 @param notifyResponse 信令通知回调数据
191 @discussion 在login或者relogin后,会通知该设备账号还未退出的频道列表,用于同步;如果没有在任何频道中,也会返回该同步通知,list为空
192 */
193- (void)nimSignalingChannelsSyncNotify:(NSArray <NIMSignalingChannelDetailedInfo *> *)notifyResponse;
194
195/**
196 房间成员同步通知
197
198 @param notifyResponse 信令通知回调数据
199 @discussion 用于同步频道内的成员列表变更,当前该接口为定时接口,2分钟同步一次,成员有变化时才上报。
200 由于一些特殊情况,导致成员在离开或掉线前没有主动调用离开频道接口,使得该成员的离开没有对应的离开通知事件,由该回调接口【频道成员变更同步通知】告知用户
201 */
202- (void)nimSignalingMembersSyncNotify:(NIMSignalingChannelDetailedInfo *)notifyResponse;
203
204@end
205
206/**
207 * 通用音视频信令协议
208 */
209@protocol NIMSignalManager <NSObject>
210
211/**
212 创建频道
213
214 @param request 创建频道请求
215 @param completion 完成回调
216 @discussion 该接口用户创建频道,同一时刻频道名互斥,不能重复创建。但如果频道名缺省,服务器会自动分配频道id。对于频道在创建后如果没人加入,有效期2小时,当有成员加入后会自动延续频道有效期。当主动关闭频道或者最后一个成员退出后2小时后频道销毁。
217 @discussion 错误码 200:成功 10405:房间已存在
218 */
219- (void)signalingCreateChannel:(NIMSignalingCreateChannelRequest *)request
220 completion:(nullable NIMSignalingCreateChannelBlock)completion;
221
222/**
223 关闭频道
224
225 @param request 关闭频道请求
226 @param completion 完成回调
227 @discussion 该接口可以由创建者和频道内所有成员调用,无权限限制。调用该接口成功后,其他所有频道内的成员都回收到频道结束的通知,被动离开频道。此时其他成员需要调用离开接口,也不会收到别人的离开通知。
228 @discussion 错误码 200:成功 10406:不在房间内
229 */
230- (void)signalingCloseChannel:(NIMSignalingCloseChannelRequest *)request
231 completion:(nullable NIMSignalingOperationBlock)completion;
232
233/**
234 加入频道
235
236 @param request 加入频道请求
237 @param completion 完成回调
238 @discussion 错误码 200:成功 10407:已经房间内 10420:已经在房间内(自己的其他端) 10419:房间人数超限 10417:uid冲突
239 */
240- (void)signalingJoinChannel:(NIMSignalingJoinChannelRequest *)request
241 completion:(nullable NIMSignalingJoinChannelBlock)completion;
242
243/**
244 离开频道
245
246 @param request 离开频道请求
247 @param completion 完成回调
248 @discussion 该接口用于自己退出频道,但不对频道进行销毁
249 @discussion 错误码 200:成功 10406:不在房间内
250 */
251- (void)signalingLeaveChannel:(NIMSignalingLeaveChannelRequest *)request
252 completion:(nullable NIMSignalingOperationBlock)completion;
253
254/**
255 邀请加入频道
256
257 @param request 邀请加入频道请求
258 @param completion 完成回调
259 @discussion 该接口用于邀请对方加入频道,邀请者必须是创建者或者是频道中成员。如果需要对离线成员邀请,可以打开离线邀请开关并填写推送信息。被邀请者在线后通过离线通知接收到该邀请,并通过房间信息中的invalid_字段判断房间的有效性,也可以对所有离线消息处理后判断该邀请是否被取消。
260 @discussion 错误码 200:成功 10404:房间不存在 10406:不在房间内(自己)10407:已经房间内(对方)10419:房间人数超限 10201:对方云信不在线 10202:对方推送不可达
261 */
262- (void)signalingInvite:(NIMSignalingInviteRequest *)request
263 completion:(nullable NIMSignalingOperationBlock)completion;
264
265/**
266 取消邀请
267
268 @param request 取消邀请请求
269 @param completion 完成回调
270 @discussion 错误码 200:成功 10404:房间不存在 10408:邀请不存在或已过期 10409:邀请已经拒绝 10410:邀请已经接受
271 */
272- (void)signalingCancelInvite:(NIMSignalingCancelInviteRequest *)request
273 completion:(nullable NIMSignalingOperationBlock)completion;
274
275/**
276 拒绝邀请
277
278 @param request 拒绝邀请请求
279 @param completion 完成回调
280 @discussion 拒绝邀请后用户也可以通过加入频道接口加入频道,接口的使用由用户的业务决定
281 @discussion 错误码 200:成功 10404:房间不存在 10408:邀请不存在或已过期 10409:邀请已经拒绝 10410:邀请已经接受
282 */
283- (void)signalingReject:(NIMSignalingRejectRequest *)request
284 completion:(nullable NIMSignalingOperationBlock)completion;
285
286/**
287 接受邀请
288
289 @param request 接受邀请请求
290 @param completion 完成回调
291 @discussion 接受频道接口
292 不开自动加入开关:该接口只接受邀请并告知邀请者,并同步通知自己的其他在线设备,但不会主动加入频道,需要单独调用加入接口
293 打开自动加入开关:该接口为组合接口,等同于先调用接受邀请,成功后再加入房间。
294 @discussion 错误码 200:成功 10404:房间不存在 10408:邀请不存在或已过期 10409:邀请已经拒绝 10410:邀请已经接受 10407:已经房间内 10420:已经在房间内(自己的其他端) 10419:房间人数超限 10417:uid冲突
295 */
296- (void)signalingAccept:(NIMSignalingAcceptRequest *)request
297 completion:(nullable NIMSignalingAcceptBlock)completion;
298
299
300/**
301 接受邀请并加入
302
303 @param request 接受邀请请求
304 @param completion 完成回调
305 @discussion 接受频道邀请并加入接口
306 该接口接受邀请并告知邀请者,并同步通知自己的其他在线设备,并主动加入频道。
307 @discussion 错误码 200:成功 10404:房间不存在 10408:邀请不存在或已过期 10409:邀请已经拒绝 10410:邀请已经接受 10407:已经房间内 10420:已经在房间内(自己的其他端) 10419:房间人数超限 10417:uid冲突
308 */
309- (void)signalingJoinAndAccept:(NIMSignalingJoinAndAcceptRequest *)request
310 completion:(nullable NIMSignalingOptimizationCallBlock)completion;
311
312/**
313 自定义控制指令
314
315 @param request 自定义控制指令请求
316 @param completion 完成回调
317 @discussion 该接口用于在频道中透传一些自定义指令,协助频道管理。该接口允许非频道内成员调用,但接收者必须是频道内成员或创建者
318 @discussion 错误码 200:成功 10404:房间不存在 10406:不在房间内(自己或者对方)
319 */
320- (void)signalingControl:(NIMSignalingControlRequest *)request
321 completion:(nullable NIMSignalingOperationBlock)completion;
322
323
324
325/**
326 呼叫
327
328 @param request 呼叫请求
329 @param completion 完成回调
330 @discussion 用于用户新开一个频道并邀请对方加入频道,该接口为组合接口,等同于用户先创建频道,成功后加入频道并邀请对方
331 @discussion 错误码 200:成功 10405:房间已存在 10201:对方云信不在线 10202:对方推送不可达。该接口是用户呼叫场景的组合接口封装,调用该接口,sdk底层分别会 创建、加入、邀请,再返回用户结果,其中任何一步失败,就返回失败(其中邀请返回10201和10202,认为是成功,返回码还是10201和10202给上层),失败时,sdk需要主动close。常用于但不限于点对点呼叫发起。
332 @discussion error的错误码为10201和10202时,返回的房间信息时有效的,需要用户主动close房间
333 */
334- (void)signalingCall:(NIMSignalingCallRequest *)request
335 completion:(nullable NIMSignalingCallBlock)completion;
336
337/**
338 呼叫 (优化)
339
340 @param request 呼叫请求
341 @param completion 完成回调
342 @discussion 用于用户新开一个频道并邀请对方加入频道,该接口为组合接口 ,对老接口进行优化。等同于用户先创建频道,成功后加入频道并邀请对方
343 @discussion 错误码 200:成功 10405:房间已存在 10201:对方云信不在线 10202:对方推送不可达。该接口是用户呼叫场景的组合接口封装,调用该接口,sdk底层分别会 创建、加入、邀请,再返回用户结果,其中任何一步失败,就返回失败(其中邀请返回10201和10202,认为是成功,返回码还是10201和10202给上层),失败时,sdk需要主动close。常用于但不限于点对点呼叫发起。
344 @discussion error的错误码为10201和10202时,返回的房间信息时有效的,需要用户主动close房间
345 */
346- (void)signalingCallEx:(NIMSignalingCallExRequest *)request
347 completion:(nullable NIMSignalingOptimizationCallBlock)completion;
348
349/**
350 查询频道信息
351
352 @param request 查询请求
353 @param completion 完成回调
354 */
355- (void)signalingQueryChannelInfo:(NIMSignalingQueryChannelRequest *)request
356 completion:(nullable NIMSignalingQueryChannelBlock)completion;
357
358/**
359 * 添加通知对象
360 *
361 * @param delegate 通知对象
362 */
363- (void)addDelegate:(id<NIMSignalManagerDelegate>)delegate;
364
365/**
366 * 移除通知对象
367 *
368 * @param delegate 通知对象
369 */
370- (void)removeDelegate:(id<NIMSignalManagerDelegate>)delegate;
371
372@end
373
374NS_ASSUME_NONNULL_END
void(^ NIMSignalingAcceptBlock)(NSError *__nullable error, NIMSignalingChannelDetailedInfo *__nullable response)
Definition: NIMSignalManagerProtocol.h:66
NIMSignalingEventType
Definition: NIMSignalManagerProtocol.h:114
@ NIMSignalingEventTypeCancelInvite
Definition: NIMSignalManagerProtocol.h:130
@ NIMSignalingEventTypeAccept
Definition: NIMSignalManagerProtocol.h:138
@ NIMSignalingEventTypeJoin
Definition: NIMSignalManagerProtocol.h:122
@ NIMSignalingEventTypeContrl
Definition: NIMSignalManagerProtocol.h:146
@ NIMSignalingEventTypeClose
Definition: NIMSignalManagerProtocol.h:118
@ NIMSignalingEventTypeInvite
Definition: NIMSignalManagerProtocol.h:126
@ NIMSignalingEventTypeLeave
Definition: NIMSignalManagerProtocol.h:142
@ NIMSignalingEventTypeReject
Definition: NIMSignalManagerProtocol.h:134
void(^ NIMSignalingJoinChannelBlock)(NSError *__nullable error, NIMSignalingChannelDetailedInfo *__nullable response)
Definition: NIMSignalManagerProtocol.h:49
NIMSignalingChannelType
Definition: NIMSignalManagerProtocol.h:95
@ NIMSignalingChannelTypeAudio
Definition: NIMSignalManagerProtocol.h:99
@ NIMSignalingChannelTypeVideo
Definition: NIMSignalManagerProtocol.h:103
@ NIMSignalingChannelTypeCustom
Definition: NIMSignalManagerProtocol.h:107
void(^ NIMSignalingOptimizationCallBlock)(NSError *__nullable error, NIMSignalingChannelCompositionInfo *__nullable response)
Definition: NIMSignalManagerProtocol.h:90
NS_ASSUME_NONNULL_BEGIN typedef void(^ NIMSignalingCreateChannelBlock)(NSError *__nullable error, NIMSignalingChannelInfo *__nullable response)
void(^ NIMSignalingCallBlock)(NSError *__nullable error, NIMSignalingChannelDetailedInfo *__nullable response)
Definition: NIMSignalManagerProtocol.h:58
void(^ NIMSignalingQueryChannelBlock)(NSError *__nullable error, NIMSignalingChannelDetailedInfo *__nullable response)
Definition: NIMSignalManagerProtocol.h:81
void(^ NIMSignalingOperationBlock)(NSError *__nullable error)
Definition: NIMSignalManagerProtocol.h:74
Definition: NIMSignalingRequest.h:257
Definition: NIMSignalingRequest.h:370
Definition: NIMSignalingRequest.h:453
Definition: NIMSignalingRequest.h:189
Definition: NIMSignalingResponse.h:99
Definition: NIMSignalingResponse.h:85
Definition: NIMSignalingResponse.h:21
Definition: NIMSignalingRequest.h:59
Definition: NIMSignalingRequest.h:429
Definition: NIMSignalingRequest.h:21
Definition: NIMSignalingRequest.h:45
Definition: NIMSignalingRequest.h:150
Definition: NIMSignalingRequest.h:317
Definition: NIMSignalingRequest.h:83
Definition: NIMSignalingRequest.h:126
Definition: NIMSignalingMemberInfo.h:16
Definition: NIMSignalingResponse.h:145
Definition: NIMSignalingRequest.h:501
Definition: NIMSignalingRequest.h:224