# CONNECTION_STATE_TYPE (/zh-CN/api-reference/rtc/cpp-all-platforms/enum-connectionstatetype)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<a id="enum_connectionstatetype__parameters"></a>

## 枚举值 [#枚举值]

<ParameterList>
<a id="connection_state_disconnected"></a>
<Parameter name="CONNECTION_STATE_DISCONNECTED">

（1）：SDK 与声网边缘服务器断开连接。该状态表示 SDK 处于以下阶段之一：调用 `joinChannel(const char* token, const char* channelId, uid_t uid, const ChannelMediaOptions& options)` 方法前的初始状态，或调用 `leaveChannel()` 方法后。

</Parameter>
<a id="connection_state_connecting"></a>
<Parameter name="CONNECTION_STATE_CONNECTING">

（2）：SDK 正在连接声网边缘服务器。该状态表示调用 `joinChannel(const char* token, const char* channelId, uid_t uid, const ChannelMediaOptions& options)` 方法后，SDK 正在与指定频道建立连接。连接成功后，SDK 会触发 [onConnectionStateChanged](/zh-CN/api-reference/rtc/cpp-all-platforms/network#callback_irtcengineeventhandler_onconnectionstatechanged) 回调，并将状态切换为 `CONNECTION_STATE_CONNECTED`。连接建立后，SDK 会初始化媒体，并在准备就绪时触发 [onJoinChannelSuccess](/zh-CN/api-reference/rtc/cpp-all-platforms/channel#callback_irtcengineeventhandler_onjoinchannelsuccess) 回调。

</Parameter>
<a id="connection_state_connected"></a>
<Parameter name="CONNECTION_STATE_CONNECTED">

（3）：SDK 已连接到声网边缘服务器。该状态表示用户已加入频道，并可在频道中发布或订阅媒体流。若因网络中断或切换导致连接丢失，SDK 会自动尝试重连，并触发 [onConnectionStateChanged](/zh-CN/api-reference/rtc/cpp-all-platforms/network#callback_irtcengineeventhandler_onconnectionstatechanged) 回调，状态变为 `CONNECTION_STATE_RECONNECTING`。

</Parameter>
<a id="connection_state_reconnecting"></a>
<Parameter name="CONNECTION_STATE_RECONNECTING">

（4）：SDK 正在持续重连声网边缘服务器。该状态表示 SDK 因网络问题与频道断开连接后，正在尝试重新加入频道：

- 若在 10 秒内未能重新加入频道，SDK 会触发 [onConnectionLost](/zh-CN/api-reference/rtc/cpp-all-platforms/network#callback_irtcengineeventhandler_onconnectionlost) 回调，保持在 `CONNECTION_STATE_RECONNECTING` 状态，并继续尝试重连。
- 若在断开连接 20 分钟后仍未能重新加入频道，SDK 会触发 [onConnectionStateChanged](/zh-CN/api-reference/rtc/cpp-all-platforms/network#callback_irtcengineeventhandler_onconnectionstatechanged) 回调，切换为 `CONNECTION_STATE_FAILED` 状态，并停止重连。

</Parameter>
<a id="connection_state_failed"></a>
<Parameter name="CONNECTION_STATE_FAILED">

（5）：SDK 无法连接声网边缘服务器或加入频道，并停止重连。用户被服务端踢出、Token 失效或鉴权失败时，回调报告的 `reason` 可能不同，但进入该状态后的恢复流程一致：

- `joinChannel` 场景：先调用 `leaveChannel`，等待 [onConnectionStateChanged](/zh-CN/api-reference/rtc/cpp-all-platforms/network#callback_irtcengineeventhandler_onconnectionstatechanged) 回调报告 `CONNECTION_STATE_DISCONNECTED`（1），再使用有效的新 Token 调用 `joinChannel`。如果未先离开频道，`joinChannel` 会返回 -17（`ERR_JOIN_CHANNEL_REJECTED`）。
- [joinChannelEx](/zh-CN/api-reference/rtc/cpp-all-platforms/channel#api_irtcengineex_joinchannelex) 场景：针对对应的 [RtcConnection](/zh-CN/api-reference/rtc/cpp-all-platforms/class-rtcconnection) 调用 `leaveChannelEx`，等待该连接的 [onConnectionStateChanged](/zh-CN/api-reference/rtc/cpp-all-platforms/network#callback_irtcengineeventhandler_onconnectionstatechanged) 回调报告 `CONNECTION_STATE_DISCONNECTED`（1），再使用有效的新 Token 调用 [joinChannelEx](/zh-CN/api-reference/rtc/cpp-all-platforms/channel#api_irtcengineex_joinchannelex)。如需只清理该连接，请使用 `leaveChannelEx`；调用 `leaveChannel` 会离开当前加入的所有频道。

</Parameter>
</ParameterList>
