@protocol RTSDelegate <NSObject>
RTSDelegate 协议包含了SDK提供的回调方法,SDK通过代理向应用程序上报一些运行时事件
- (void)rtsEngine:(RTS * _Nonnull)engine onConnectionStateChanged:(ByteRTCConnectionState)state;
SDK 与信令服务器连接状态改变回调。连接状态改变时触发。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
engine | RTS* | RTS 对象。 |
state | ByteRTCConnectionState | 当前 SDK 与信令服务器连接状态。详细定义参见 ByteRTCConnectionState |
注意
更多信息参见 连接状态提示。
- (void)rtsEngine:(RTS * _Nonnull)engine onNetworkTypeChanged:(ByteRTCNetworkType)type;
SDK 当前网络连接类型改变回调。当 SDK 的当前网络连接类型发生改变时回调该事件。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
engine | RTS* | RTS 对象。 |
type | ByteRTCNetworkType | SDK 当前的网络连接类型。参看 ByteRTCNetworkType。 |
- (void)rtsEngine:(RTS *_Nonnull)engine onCreateRoomStateChanged:(NSString * _Nonnull)roomId errorCode:(NSInteger)errorCode;
创建房间失败回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
engine | RTS* | RTS 对象。 |
roomId | NSString* | 房间 ID。 |
errorCode | NSInteger | 创建房间错误码: • -1007:无效 roomId; • -1013:相同 roomId 的房间已存在。 |
- (void)rtsEngine:(RTS * _Nonnull)engine onLocalProxyStateChanged:(ByteRTCLocalProxyType)type withProxyState:(ByteRTCLocalProxyState)state withProxyError:(ByteRTCLocalProxyError)error;
本地代理状态发生改变回调。调用 setLocalProxy: 设置本地代理后,SDK 会触发此回调,返回代理连接的状态。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
type | ByteRTCLocalProxyType | 本地代理类型。参看 ByteRTCLocalProxyType 。 |
state | ByteRTCLocalProxyState | 本地代理状态。参看 ByteRTCLocalProxyState。 |
error | ByteRTCLocalProxyError | 本地代理错误。参看 ByteRTCLocalProxyError。 |
- (void)rtsEngine:(RTS * _Nonnull)engine onSysStats:(const ByteRTCSysStats * _Nonnull)stats;
周期性(2s)地发出回调,报告当前 cpu 与内存的使用率
传入参数
参数名 | 类型 | 说明 |
---|---|---|
engine | RTS* | RTS 对象 |
stats | const ByteRTCSysStats* | 返回包含当前系统状态信息的结构体,详见 ByteRTCSysStats |
- (void)rtsEngine:(RTS * _Nonnull)engine onLoginResult:(NSString * _Nonnull)uid errorCode:(ByteRTCLoginErrorCode)errorCode elapsed:(NSInteger)elapsed;
登录 RTS 服务器结果回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
engine | RTS* | RTS 对象 |
uid | NSString* | 登录用户 ID |
errorCode | ByteRTCLoginErrorCode | 登录结果,详见 ByteRTCLoginErrorCode。 |
elapsed | NSInteger | 从调用 login:uid: 接口开始到返回结果所用时长,单位为 ms。 |
注意
调用 login:uid: 后,会收到此回调。
- (void)rtsEngineOnLogout:(RTS * _Nonnull)engine;
登出结果回调
传入参数
参数名 | 类型 | 说明 |
---|---|---|
engine | RTS* | RTS 对象 |
注意
调用 logout 后,会收到此回调。
- (void)rtsEngine:(RTS * _Nonnull)engine onServerParamsSetResult:(NSInteger)errorCode;
设置应用服务器参数的返回结果
传入参数
参数名 | 类型 | 说明 |
---|---|---|
engine | RTS* | RTS 对象 |
errorCode | NSInteger | 设置结果: • 返回 200,设置成功 • 返回其他,设置失败 |
注意
调用 setServerParams:url: 后,会收到此回调。
- (void)rtsEngine:(RTS * _Nonnull)engine onGetPeerOnlineStatus:(NSString * _Nonnull)peerUserId status:(ByteRTCUserOnlineStatus)status;
查询对端或本端用户登录状态的返回结果
传入参数
参数名 | 类型 | 说明 |
---|---|---|
engine | RTS* | RTS 对象 |
peerUserId | NSString* | 需要查询的用户 ID |
status | ByteRTCUserOnlineStatus | 查询的用户登录状态,详见 ByteRTCUserOnlineStatus. |
注意
必须先调用 getPeerOnlineStatus:,才能收到此回调。
- (void)rtsEngine:(RTS * _Nonnull)engine onMessageReceived:(NSString * _Nonnull)uid message:(NSString * _Nonnull)message;
收到远端用户调用 sendMessage:message:config: 发来的文本消息时,会收到此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
engine | RTS* | RTS 对象 |
uid | NSString* | 消息发送者 ID |
message | NSString* | 收到的文本消息内容 |
- (void)rtsEngine:(RTS * _Nonnull)engine onBinaryMessageReceived:(NSString * _Nonnull)uid message:(NSData * _Nonnull)message;
收到房间外用户调用 sendBinaryMessage:message:config: 发来的二进制消息时,会收到此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
engine | RTS* | RTS 对象 |
uid | NSString* | 消息发送者 ID |
message | NSData* | 收到的二进制消息内容 |
- (void)rtsEngine:(RTS * _Nonnull)engine onMessageSendResult:(int64_t)msgid error:(ByteRTCUserMessageSendResult)error;
发送 p2p 消息的结果回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
engine | RTS* | RTS 对象 |
msgid | int64_t | 本条消息的 ID。所有的 P2P 和 P2Server 消息共用一个 ID 序列。 |
error | ByteRTCUserMessageSendResult | 消息发送结果,详见 ByteRTCUserMessageSendResult。 |
注意
当调用 sendMessage:message:config: 或 sendBinaryMessage:message:config: 发送消息后,会收到此回调。
- (void)rtsEngine:(RTS * _Nonnull)engine onServerMessageSendResult:(int64_t)msgid error:(ByteRTCUserMessageSendResult)error message:(NSData * _Nonnull)message;
发送 p2server 消息的结果回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
engine | RTS* | RTS 对象 |
msgid | int64_t | 本条消息的 ID。所有的 P2P 和 P2Server 消息共用一个 ID 序列。 |
error | ByteRTCUserMessageSendResult | 消息发送结果。详见 ByteRTCUserMessageSendResult。 |
注意
当调用 sendServerMessage: 或 sendServerBinaryMessage: 接口发送消息后,会收到此回调。
@protocol RTSRoomDelegate <NSObject>
语音房间事件回调接口
- (void)rtsRoom:(RTSRoom * _Nonnull)rtcRoom onRoomStateChanged:(NSString * _Nonnull)roomId withUid:(nonnull NSString *)uid state:(NSInteger)state extraInfo:(nonnull NSString *)extraInfo;
房间状态改变回调,加入房间、异常退出房间、发生房间相关的警告或错误时会收到此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
roomId | NSString* | 房间 ID。 |
uid | NSString* | 用户 ID。 |
state | NSInteger | 房间状态码。 • 0: 加入房间成功。 • !0: 加入房间失败、异常退房、发生房间相关的警告或错误。 |
extraInfo | NSString* | 额外信息,如 {"elapsed":1187,"join_type":0} 。join_type 表示加入房间的类型,0 为首次进房,1 为重连进房。elapsed 表示加入房间耗时,即本地用户从调用 joinRoom 到加入房间成功所经历的时间间隔,单位为 ms。 |
- (void)rtsRoomOnLeaveRoom:(RTSRoom *_Nonnull)rtsRoom;
离开房间成功回调。
用户调用 leaveRoom 方法后,SDK 会停止房间内消息的收发,并在释放所有相关资源后,通过此回调通知用户离开房间成功。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
rtsRoom | RTSRoom* | rtsRoom 对象。 |
注意
用户调用 leaveRoom 方法离开房间后,如果立即销毁 RTC 引擎,则将无法收到此回调事件。
- (void)rtsRoom:(RTSRoom * _Nonnull)rtcRoom onUserJoined:(NSString * _Nonnull)uid elapsed:(NSInteger)elapsed;
远端用户首次进房,或断网后重新连入房间时,房间内其他用户将收到该事件。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
rtcRoom | RTSRoom* | RTSRoom 对象。 |
uid | NSString* | 加入房间的用户 ID。 |
elapsed | NSInteger | 保留字段,无意义 |
- (void)rtsRoom:(RTSRoom * _Nonnull)rtcRoom onUserLeave:(NSString * _Nonnull)uid reason:(ByteRTCUserOfflineReason)reason;
远端用户离开房间时,本地用户会收到此事件
传入参数
参数名 | 类型 | 说明 |
---|---|---|
rtcRoom | RTSRoom* | RTSRoom 对象。 |
uid | NSString* | 离开房间的远端用户 ID 。 |
reason | ByteRTCUserOfflineReason | 用户离开房间的原因,参看 ByteRTCUserOfflineReason。 |
- (void)rtsRoom:(RTSRoom * _Nonnull)rtcRoom onRoomMessageReceived:(NSString * _Nonnull)uid message:(NSString * _Nonnull)message;
收到房间中调用 sendRoomMessage: 发送的广播文本消息时,收到此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
rtcRoom | RTSRoom* | RTSRoom 对象 |
uid | NSString* | 消息发送者 ID 。 |
message | NSString* | 收到的文本消息内容。 |
- (void)rtsRoom:(RTSRoom * _Nonnull)rtcRoom onRoomBinaryMessageReceived:(NSString * _Nonnull)uid message:(NSData * _Nonnull)message;
收到房间中调用 sendRoomBinaryMessage: 发送的广播二进制消息时,收到此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
rtcRoom | RTSRoom* | RTSRoom 对象 |
uid | NSString* | 消息发送者 ID 。 |
message | NSData* | 收到的二进制消息内容。 |
- (void)rtsRoom:(RTSRoom * _Nonnull)rtcRoom onRoomMessageSendResult:(int64_t)msgid error:(ByteRTCRoomMessageSendResult)error;
向房间内所有用户群发文本或二进制消息后,消息发送方会收到该消息发送结果回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
rtcRoom | RTSRoom* | RTSRoom 对象。 |
msgid | int64_t | 本条消息的 ID。 |
error | ByteRTCRoomMessageSendResult | 消息发送结果,详见 ByteRTCRoomMessageSendResult |
注意