すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Model Studio:接続状態管理

最終更新日:Sep 02, 2026

AOQ Client SDK の接続ステートマシンと、対応する API 呼び出しについて説明します。

接続状態図

次の図は、AOQ Client SDK の接続状態遷移を示しています。

AOQ Client SDK 接続状態図

111

状態の説明

状態

列挙値

説明

接続中

1

connect の呼び出し後にこの状態に入ります。SDK は AI サービスへの接続を確立中です。

接続済み

2

接続が確立されました。音声、動画、データメッセージを正常に送受信できます。

失敗

3

接続エラー (認証失敗、タイムアウト、サーバー拒否など) が発生しました。SDK は自動的に「切断」に遷移します。

切断

0

初期状態、または意図的あるいは予期しない切断後の終端状態です。

状態遷移ルール

  1. アプリケーションが connect を呼び出す → 接続中に遷移します。
  2. 接続に成功接続中から接続済みに遷移します。
  3. 接続に失敗接続中から失敗に遷移し、その後 SDK は自動的に切断に遷移します。
  4. 接続に失敗接続済みから失敗に遷移し、その後 SDK は自動的に切断に遷移します。
  5. アプリケーションが disconnect を呼び出す → 接続済みから切断に遷移します。

注記失敗 は一時的な状態です。SDK が onConnectionStatusChange(failed) をトリガーした後、自動的に 切断 に遷移します。アプリケーション層で手動で disconnect を呼び出す必要はありません。

connect API

connect を呼び出して、AI サービスへの接続を開始します。AppServer の allocate エンドポイントから返された認証情報を渡します。

メソッドシグネチャ

Android:
public abstract int connect(@NonNull AoqConnectConfig config);
iOS:
- (int)connect:(AoqConnectConfig * _Nonnull)config;
HarmonyOS:
connect(config: AoqConnectConfig): number;

戻り値: 0 は呼び出しに成功したことを示します (接続は非同期で確立されます)。< 0 は失敗を示します。

動作

  • 呼び出し直後に onConnectionStatusChange(connecting) コールバックをトリガーします。
  • 接続に成功すると、onConnectionStatusChange(connected) コールバックをトリガーします。
  • 接続に失敗すると、onConnectionStatusChange(failed) コールバックをトリガーします。

disconnect API

disconnect を呼び出して、AI サービスへの接続を意図的に閉じます。

メソッドシグネチャ

Android:
public abstract int disconnect();
iOS:
- (int)disconnect;
HarmonyOS:
disconnect(): number;

戻り値: 0 は成功を示します。< 0 は失敗を示します。

動作

  • 呼び出し後に onConnectionStatusChange(disconnected) コールバックをトリガーします。
  • エンジンは自動的に解放されません。再度 connect を呼び出して再接続できます。
  • 未接続時に disconnect を呼び出しても安全であり、0 を返します。

onConnectionStatusChange コールバック

SDK は、接続状態が変化するたびにこのコールバックをトリガーします。

Android:
public void onConnectionStatusChange(
    @NonNull AoqClientEngine.AoqConnectionStatus status) {}
iOS:
- (void)onConnectionStatusChange:(AoqConnectionStatus)status;
HarmonyOS:
onConnectionStatusChange?: (status: AoqConnectionStatus) => void;

func onConnectionStatusChange(_ status: AoqConnectionStatus) {
    switch status {
    case .connecting:
        print("接続中...")
    case .connected:
        print("接続済み")
        // 接続確立後に session.update を送信できます
    case .failed:
        print("接続失敗")
        // SDK は自動的に「切断」に遷移します。手動で disconnect を呼び出す必要はありません
    case .disconnected:
        print("切断")
        // アプリケーションロジックに基づいて再接続するかどうかを判断します
    }
}