AgoraConnectionState
AgoraConnectionState
网络连接状态。
枚举值
- AgoraConnectionStateDisconnected
- 1: 网络连接断开。该状态表示 SDK 处于:
- 调用 joinChannelByToken:channelId:uid:mediaOptions:joinSuccess: 加入频道前的初始化阶段。
- 或调用 leaveChannel:leaveChannelBlock: 后的离开频道阶段。
- AgoraConnectionStateConnecting
- 2: 建立网络连接中。该状态表示 SDK 在调用 joinChannelByToken:channelId:uid:mediaOptions:joinSuccess: 后正在与指定的频道建立连接。
- 如果成功加入频道,App 会收到 rtcEngine:connectionStateChanged:reason: 回调,通知当前网络状态变成 AgoraConnectionStateConnected。
- 建立连接后,SDK 还会初始化媒体,一切就绪后会回调 rtcEngine:didJoinChannel:withUid:elapsed:。
- AgoraConnectionStateConnected
- 3: 网络已连接。该状态表示用户已经加入频道,可以在频道内发布或订阅媒体流。如果因网络断开或切换而导致 SDK 与频道的连接中断,SDK 会自动重连,此时 App 会收到 rtcEngine:connectionStateChanged:reason: 回调,通知当前网络状态变成 AgoraConnectionStateReconnecting。
- AgoraConnectionStateReconnecting
- 4: 重新建立网络连接中。该状态表示 SDK 之前曾加入过频道,但因网络等原因连接中断了,此时 SDK 会自动尝试重新接入频道。
- 如果 SDK 无法在 10 秒内重新加入频道,则 rtcEngineConnectionDidLost: 会被触发,SDK 会一直保持在 AgoraConnectionStateReconnecting 的状态,并不断尝试重新加入频道。
- 如果 SDK 在断开连接后,20 分钟内还是没能重新加入频道,则应用程序会收到 rtcEngine:connectionStateChanged:reason: 回调,通知 App 的网络状态进入 AgoraConnectionStateFailed,SDK 停止尝试重连。
- AgoraConnectionStateFailed
- 5: 网络连接失败。该状态表示 SDK 已不再尝试重新加入频道,需要调用 leaveChannel: 离开频道。
- 如果用户还想重新加入频道,则需要再次调用 joinChannelByToken:channelId:uid:mediaOptions:joinSuccess:。
- 如果 SDK 因服务器端使用 RESTful API 禁止加入频道,则 App 会收到 rtcEngine:connectionStateChanged:reason:。