Todos os produtos
Search
Central de documentação

ApsaraVideo Live:Gerenciamento do status de conexão do canal

Última atualização: Jun 30, 2026

Entenda os status de conexão do canal, os motivos das alterações e como lidar com cada transição.

Introdução ao recurso

Em cenários de áudio e vídeo em tempo real, a conexão entre cliente e servidor muda conforme os usuários entram ou saem dos canais. Problemas de rede também podem causar reconexões ou desconexões. Gerenciar adequadamente esses estados de conexão é fundamental para manter uma experiência de usuário estável e confiável.

Como funciona

Status da conexão

Quando o status da conexão muda, o ARTC SDK aciona o callback onConnectionStatusChange. A figura a seguir mostra os diversos status de conexão e suas transições quando os usuários entram e saem dos canais.

image

Reconexão automática

Durante uma chamada, se a conexão for perdida devido a problemas de rede, o SDK tenta se reconectar automaticamente. A figura a seguir ilustra os callbacks que o Usuário A e o Usuário B recebem quando o Usuário A entra em um canal onde o Usuário B está presente, perde a conectividade, tenta a reconexão automática e, por fim, falha ao se reconectar.

image
  • Em T0: O Usuário A inicia uma solicitação joinChannel.

  • Em T1: O Usuário A entra no canal com sucesso e recebe os callbacks onJoinChannelResult(result=0) e onConnectionStatusChange.

  • Em T2: O Usuário B detecta que o Usuário A entrou no canal e recebe o callback onRemoteUserOnLineNotify.

  • Em T3: A conexão do Usuário A é perdida devido à desconexão da rede do cliente ou a outros motivos.

  • Em T4: O SDK do Usuário A detecta a desconexão ou para de receber dados do servidor, inicia a reconexão automática e o Usuário A recebe o callback onConnectionStatusChange.

  • Em T5: Após várias tentativas em 100 segundos, o SDK ainda não consegue reentrar no canal e interrompe as tentativas. Ele envia o callback onConnectionStatusChange para o Usuário A. Nesse caso, o usuário deve sair do canal atual, verificar a conectividade da rede local e entrar novamente após a recuperação da rede.

Código de exemplo

Android

onConnectionStatusChange - Callback de alteração do status de conexão de rede

@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 - Callback de alteração do status de conexão de rede

/**
 * @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 - Callback de alteração do status de conexão de rede

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

Descrição dos status

Status da conexão

Status da conexão

Descrição

Init

Status inicial. Ocorre antes da chamada de joinChannel.

Connecting

Status transitório após a chamada do método joinChannel.

Connected

O aplicativo entrou no canal com sucesso.

O SDK também aciona o callback onJoinChannelResult para confirmar que o cliente local entrou no canal. Em seguida, o SDK publica e assina fluxos de áudio e vídeo automaticamente. Os usuários também podem controlar a publicação e a assinatura manualmente.

Disconnected

Ocorre após a chamada de leaveChannel.

Reconnecting

A conexão foi interrompida. O SDK tenta se reconectar automaticamente.

Se a reentrada for bem-sucedida, o SDK aciona onConnectionStatusChange

(AliRtcConnectionStatusConnected, AliRtcConnectionChangedSignalingJoinChannelSuccess)

Failed

Falha na conexão. O SDK não conseguiu entrar no canal dentro de 100 segundos e parou de tentar a reconexão. O usuário deve chamar leaveChannel, verificar a conectividade da rede local e chamar joinChannel novamente após a recuperação da rede.

Descrição do motivo do status

Status da conexão (status)

Descrição do motivo do status (reason)

Init

Sem motivo, status inicial.

Connecting

Connecting: Entrando no canal.

Connected

JoinChannelSuccess: Entrada no canal bem-sucedida.

Disconnected

LeaveRoom: O usuário saiu ativamente do canal.

Reconnecting

  • HeartbeatTimeout: Nenhum dado recebido do servidor por um período de tempo. Possíveis causas incluem problemas de rede downstream ou alta perda de pacotes.

  • NetworkInterrupted: Desconexão da rede do cliente.

Failed

JoinChannelFailure: Falha ao entrar ou reentrar no canal, possivelmente devido a desconexão persistente da rede ou token inválido.