CONNECTION_STATE_TYPE

  • C++

更新时间不可用

连接状态。

枚举值

参数名描述
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 状态,并停止重连。
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 会离开当前加入的所有频道。
表格内容超出当前宽度,可横向滚动查看更多列。

这个页面有帮助吗?