CONNECTION_STATE_TYPE
CONNECTION_STATE_TYPE
连接状态。
枚举值
- CONNECTION_STATE_DISCONNECTED
- (1):SDK 与声网边缘服务器断开连接。该状态表示 SDK 处于以下阶段之一:调用
joinChannel(const char* token, const char* channelId, uid_t uid, const ChannelMediaOptions& options)方法前的初始状态,或调用leaveChannel()方法后。 - CONNECTION_STATE_CONNECTING
- (2):SDK 正在连接声网边缘服务器。该状态表示调用
joinChannel(const char* token, const char* channelId, uid_t uid, const ChannelMediaOptions& options)方法后,SDK 正在与指定频道建立连接。连接成功后,SDK 会触发 onConnectionStateChanged 回调,并将状态切换为CONNECTION_STATE_CONNECTED。连接建立后,SDK 会初始化媒体,并在准备就绪时触发 onJoinChannelSuccess 回调。 - CONNECTION_STATE_CONNECTED
- (3):SDK 已连接到声网边缘服务器。该状态表示用户已加入频道,并可在频道中发布或订阅媒体流。若因网络中断或切换导致连接丢失,SDK 会自动尝试重连,并触发 onConnectionStateChanged 回调,状态变为
CONNECTION_STATE_RECONNECTING。 - CONNECTION_STATE_RECONNECTING
- (4):SDK 正在持续重连声网边缘服务器。该状态表示 SDK 因网络问题与频道断开连接后,正在尝试重新加入频道:
- 若在 10 秒内未能重新加入频道,SDK 会触发 onConnectionLost 回调,保持在
CONNECTION_STATE_RECONNECTING状态,并继续尝试重连。 - 若在断开连接 20 分钟后仍未能重新加入频道,SDK 会触发 onConnectionStateChanged 回调,切换为
CONNECTION_STATE_FAILED状态,并停止重连。
- 若在 10 秒内未能重新加入频道,SDK 会触发 onConnectionLost 回调,保持在
- CONNECTION_STATE_FAILED
- (5):SDK 无法连接声网边缘服务器或加入频道,并停止重连。用户被服务端踢出、Token 失效或鉴权失败时,回调报告的
reason可能不同,但进入该状态后的恢复流程一致:joinChannel场景:先调用leaveChannel,等待 onConnectionStateChanged 回调报告CONNECTION_STATE_DISCONNECTED(1),再使用有效的新 Token 调用joinChannel。如果未先离开频道,joinChannel会返回 -17(ERR_JOIN_CHANNEL_REJECTED)。- joinChannelEx 场景:针对对应的 RtcConnection 调用
leaveChannelEx,等待该连接的 onConnectionStateChanged 回调报告CONNECTION_STATE_DISCONNECTED(1),再使用有效的新 Token 调用 joinChannelEx。如需只清理该连接,请使用leaveChannelEx;调用leaveChannel会离开当前加入的所有频道。