Tous les produits
Search
Centre de documentation

ApsaraVideo Live:Gestion des statuts de connexion aux canaux

Dernière mise à jour :Aug 08, 2026

Découvrez les différents statuts de connexion aux canaux, les raisons de leurs changements et la manière de gérer chaque transition.

Présentation de la fonctionnalité

Dans les scénarios audio et vidéo en temps réel, la connexion entre le client et le serveur évolue au gré des entrées et des sorties des utilisateurs dans les canaux. Elle peut également changer en raison de problèmes réseau entraînant une reconnexion ou une déconnexion. Une gestion appropriée de ces états de connexion est indispensable pour garantir une expérience utilisateur stable et fiable.

Fonctionnement

Statut de connexion

Lorsque le statut de connexion change, le SDK ARTC déclenche le rappel onConnectionStatusChange. Le schéma ci-dessous illustre les différents statuts de connexion et leurs transitions lors de l'entrée et de la sortie des utilisateurs des canaux.

image

Reconnexion automatique

Pendant un appel, si la connexion est interrompue en raison de problèmes réseau, le SDK tente automatiquement de se reconnecter. Le schéma suivant présente les rappels reçus par l'utilisateur A et l'utilisateur B lorsque l'utilisateur A rejoint un canal où se trouve l'utilisateur B, perd la connectivité, tente une reconnexion automatique, puis échoue finalement à se reconnecter.

image
  • À T0 : L'utilisateur A initie une requête joinChannel.

  • À T1 : L'utilisateur A rejoint le canal avec succès et reçoit les rappels onJoinChannelResult(result=0) et onConnectionStatusChange.

  • À T2 : L'utilisateur B détecte que l'utilisateur A a rejoint le canal et reçoit le rappel onRemoteUserOnLineNotify.

  • À T3 : La connexion de l'utilisateur A est perdue en raison d'une déconnexion du réseau client ou pour d'autres raisons.

  • À T4 : Le SDK de l'utilisateur A détecte la déconnexion ou cesse de recevoir des données du serveur. Il lance une reconnexion automatique et l'utilisateur A reçoit le rappel onConnectionStatusChange.

  • À T5 : Après plusieurs tentatives de réessai effectuées dans un délai de 100 secondes, le SDK ne parvient toujours pas à rejoindre le canal et arrête ses tentatives. Il envoie le rappel onConnectionStatusChange à l'utilisateur A. Ce dernier doit alors quitter le canal actuel, vérifier la connectivité du réseau local et rejoindre à nouveau le canal une fois le réseau rétabli.

Exemple de code

Android

onConnectionStatusChange - Rappel de changement de statut de connexion réseau

@Override
public void onConnectionStatusChange(AliRtcEngine.AliRtcConnectionStatus status, AliRtcEngine.AliRtcConnectionStatusChangeReason reason) {
    super.onConnectionStatusChange(status, reason);
    Log.e(TAG, "onConnectionStatusChange.");
    ThreadUtils.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            if (mLogView != null) {
                mLogView.logI("Network connection changed to: " + status + ", reason: " + reason);
            }
        }
    });
}

IOS

onConnectionStatusChange - Rappel de changement de statut de connexion réseau

/**
 * @brief Channel connection status change callback
 * @param status Current status value, refer to AliRtcConnectionStatus enumeration for corresponding values
 * @param reason Specific reason for the status change, refer to AliRtcConnectionStatusChangeReason enumeration for corresponding values
*/
- (void)onConnectionStatusChange:(AliRtcConnectionStatus)status reason:(AliRtcConnectionStatusChangeReason)reason{
    NSString *stateStr = [NSString stringWithFormat:@"\nNetwork status: %@ status: %ld  Reason: %@ reason: %ld\n",[self callbackNetstatus:status], (long)status,[self callbackNetstatusReason:reason], (long)reason];
    MyLog(@"%@", stateStr);
}

Windows

OnConnectionStatusChange - Rappel de changement de statut de connexion réseau

void AliSDKEventListener::OnConnectionStatusChange(int status, int reason)
{
    if (win_rtc_listener_)
    {
        win_rtc_listener_->OnConnectionStatusChange(status, reason);
    }
}

Description des statuts

Statut de connexion

Statut de connexion

Description

Init

Statut initial. Se produit avant l'appel à joinChannel.

Connecting

Statut transitoire après l'appel à la méthode joinChannel.

Connected

L'application a rejoint le canal avec succès.

Le SDK déclenche également le rappel onJoinChannelResult pour confirmer que le client local a rejoint le canal. Le SDK publie et s'abonne ensuite automatiquement aux flux audio et vidéo ; les utilisateurs peuvent aussi contrôler manuellement la publication et l'abonnement.

Disconnected

Se produit après l'appel à leaveChannel.

Reconnecting

La connexion a été interrompue. Le SDK tente automatiquement de se reconnecter.

Si la reconnexion réussit, le SDK déclenche onConnectionStatusChange

(AliRtcConnectionStatusConnected, AliRtcConnectionChangedSignalingJoinChannelSuccess)

Failed

Échec de la connexion. Le SDK n'a pas pu rejoindre le canal dans un délai de 100 secondes et a arrêté les tentatives de reconnexion. L'utilisateur doit appeler leaveChannel, vérifier la connectivité du réseau local, puis appeler à nouveau joinChannel une fois le réseau rétabli.

Description des raisons de statut

Statut de connexion (status)

Description de la raison du statut (reason)

Init

Aucune raison, statut initial.

Connecting

Connecting : Rejoindre le canal.

Connected

JoinChannelSuccess : Canal rejoint avec succès.

Disconnected

LeaveRoom : L'utilisateur a quitté le canal volontairement.

Reconnecting

  • HeartbeatTimeout : Aucune donnée reçue du serveur pendant une certaine période. Les causes possibles incluent des problèmes de réseau descendant ou une perte de paquets élevée.

  • NetworkInterrupted : Déconnexion du réseau client.

Failed

JoinChannelFailure : Échec de la jonction ou de la reconnexion au canal, potentiellement dû à une déconnexion réseau persistante ou à un jeton non valide.