Skip to main content

Gestión del estado de conexión

Describe la máquina de estados de conexión del AOQ Client SDK y las llamadas a la API correspondientes.

Diagrama de estado de conexión

El siguiente diagrama muestra las transiciones de estado de conexión del AOQ Client SDK: Diagrama de estado de conexión del AOQ Client SDK
111

Descripciones de estados

Estado

Valor de enumeración

Descripción

Conectando

1

Se ingresa después de llamar a connect. El SDK está estableciendo una conexión con el Servicio de IA.

Conectado

2

Conexión establecida. Los mensajes de audio, video y datos se pueden enviar y recibir normalmente.

Fallido

3

Error de conexión (fallo de autenticación, tiempo de espera agotado, rechazo del servidor, etc.). El SDK transita automáticamente a Disconnected.

Desconectado

0

Estado inicial, o estado terminal después de una desconexión intencional o inesperada.

Reglas de transición de estado

  1. La aplicación llama a connect → entra en Connecting.
  2. Conexión exitosa → transita de Connecting a Connected.
  3. Fallo de conexión → transita de Connecting a Failed, luego el SDK transita automáticamente a Disconnected.
  4. Fallo de conexión → transita de Connected a Failed, luego el SDK transita automáticamente a Disconnected.
  5. La aplicación llama a disconnect → transita de Connected a Disconnected.
Nota: Failed es un estado transitorio. Después de que el SDK active onConnectionStatusChange(Failed), transita automáticamente a Disconnected. La capa de aplicación no necesita llamar a disconnect manualmente.

API connect

Llame a connect para iniciar una conexión con el Servicio de IA. Pase las credenciales de autenticación devueltas por el endpoint allocate de AppServer.

Firma del método

Android:
public abstract int connect(@NonNull AoqConnectConfig config);
iOS:
- (int)connect:(AoqConnectConfig * _Nonnull)config;
HarmonyOS:
connect(config: AoqConnectConfig): number;
Valor de retorno: 0 indica que la llamada tuvo éxito (la conexión se establece de forma asíncrona). < 0 indica fallo.

Comportamiento

  • Activa el callback onConnectionStatusChange(connecting) inmediatamente después de la llamada.
  • Activa el callback onConnectionStatusChange(connected) si la conexión tiene éxito.
  • Activa el callback onConnectionStatusChange(failed) si la conexión falla.

API disconnect

Llame a disconnect para cerrar intencionalmente la conexión al Servicio de IA.

Firma del método

Android:
public abstract int disconnect();
iOS:
- (int)disconnect;
HarmonyOS:
disconnect(): number;
Valor de retorno: 0 indica éxito. < 0 indica fallo.

Comportamiento

  • Activa el callback onConnectionStatusChange(Disconnected) después de la llamada.
  • El motor no se libera automáticamente. Puede llamar a connect nuevamente para reconectar.
  • Llamar a disconnect cuando no hay conexión es seguro y devuelve 0.

Callback onConnectionStatusChange

El SDK activa este callback cada vez que cambia el estado de la conexión. Android:
public void onConnectionStatusChange(
    @NonNull AoqClientEngine.AoqConnectionStatus status) {}
iOS:
- (void)onConnectionStatusChange:(AoqConnectionStatus)status;
HarmonyOS:
onConnectionStatusChange?: (status: AoqConnectionStatus) => void;

Ejemplo

func onConnectionStatusChange(_ status: AoqConnectionStatus) {
    switch status {
    case .connecting:
        print("Connecting...")
    case .connected:
        print("Connected")
        // You can send session.update after the connection is established
    case .failed:
        print("Connection failed")
        // The SDK will automatically transition to disconnected; no need to call disconnect manually
    case .disconnected:
        print("Disconnected")
        // Decide whether to reconnect based on your application logic
    }
}