Tratamento de exceções | Web SDK

Importante: Observe que o seu ID do aplicativo é o seu Chave de API.

Uma boa prática na programação é escrever código que presuma e antecipe que algo possa dar errado. Por exemplo, um cliente pode não estar conectado à internet ao tentar se conectar a uma sessão.

O SDK da Web inclui manipuladores de conclusão e eventos de exceção que revelam exceções em tempo de execução.

Manipuladores de conclusão

Em muitos métodos que são executados de forma assíncrona, o último parâmetro passado é uma função de tratamento de conclusão. Essa função é chamada quando o método é concluído ou falha. Se houver falha, é passado à função um objeto de erro como parâmetro.

Por exemplo, o código a seguir chama o Session.connect() método, passando um manipulador de conclusão:

var session = OT.initSession(apiKey, session);
session.connect(token, function (error) {
    if (error) {
    console.log("Failed to connect: ", error.message);
    if (error.name === "OT_NOT_CONNECTED") {
        alert("You are not connected to the internet. Check your network connection.");
    }
    } else {
    console.log("Connected");
    }
});

Importante: Observe que o seu ID do aplicativo é o seu Chave de API.

É importante implementar manipuladores de conclusão para verificar quando um método é bem-sucedido ou falha. Em alguns casos, é possível solicitar uma confirmação ao usuário caso haja uma condição do cliente que tenha causado o erro. Por exemplo, se o error.name a propriedade é definida como “OT_NOT_CONNECTED” ao chamar o Session.connect() Se o método falhar, isso indica que o cliente não está conectado à rede.

Para outras condições de erro que não sejam de responsabilidade do cliente, você pode examinar o código e a mensagem de erro para identificar a natureza do erro. Por exemplo, ao chamar a função Session.connect() Se o método falhar, um código de erro 1004 indica que você tentou se conectar com um token inválido. Pode ser um token expirado ou que não corresponde à sessão à qual você está se conectando. Verifique a propriedade “message” do objeto de erro para obter mais detalhes.

Métodos com manipuladores de conclusão

Os métodos a seguir no Web SDK incluem um completionHandler parâmetro. Para esse parâmetro opcional, é possível passar uma função que será chamada caso o método seja bem-sucedido ou falhe:

  • Session.forceDisconnect()
  • Session.forceUnpublish()
  • Session.connect()
  • Session.publish()
  • Session.signal()
  • Session.subscribe()
  • OT.initPublisher()

Verifique o message propriedade para obter mais detalhes sobre o erro.

Em caso de erro, o code valor do error O parâmetro pode assumir um dos seguintes valores:

Erros ao chamar Session.connect():
código Descrição
1004 Erro de autenticação. Verifique a mensagem de erro para obter mais detalhes. Esse erro pode ocorrer se você passar um token vencido ao tentar se conectar a uma sessão. Ele também pode ocorrer se você passar um token ou uma chave de API inválida. Certifique-se de estar gerando o token usando a versão atual de um dos SDKs de servidor.
1005 ID de sessão inválido. Certifique-se de gerar o ID de sessão usando a versão atual de um dos SDKs de servidor.
1006 Falha na conexão. Não foi possível conectar-se à sessão. Recomenda-se que o cliente verifique a conexão de rede.
Erros ao chamar Session.forceDisconnect():
código Descrição
1520 Não foi possível forçar o desligamento. O token do cliente não possui a função de moderador definida. Assim que o cliente se conectar à sessão, o capabilities A propriedade do objeto Session lista os recursos do cliente.
Erros ao chamar Session.forceUnpublish():
código Descrição
1530 Não foi possível forçar a retirada da publicação. O token do cliente não possui a função de moderador definida. Assim que o cliente se conectar à sessão, o capabilities A propriedade do objeto Session lista os recursos do cliente.
1535 Forçar a retirada da publicação em um stream inválido. Certifique-se de que o stream não tenha saído da sessão antes de chamar o forceUnpublish() método.
Erros ao chamar Session.publish():
código Descrição
1010 Não é possível publicar: o cliente não está conectado à sessão. Verifique se seu aplicativo faz com que o cliente se conecte corretamente antes de tentar publicar. Além disso, verifique se o cliente não se desconectou antes de tentar publicar.
1500 Não foi possível publicar. O token do cliente não possui a função definida como “publicar” ou “moderador”. Assim que o cliente se conectar à sessão, o capabilities A propriedade do objeto Session lista os recursos do cliente.
1601 Erro interno — Erro do editor do WebRTC. Tente publicar novamente ou se reconectar à sessão.
Erros ao chamar Session.signal():
código Descrição
1510 Não é possível enviar o sinal. Verifique se o to a propriedade do parâmetro signal esteja definida como um objeto Connection válido. Além disso, certifique-se de que você esteja conectado à sessão.
Erros ao chamar Session.subscribe():
código Descrição
1600 Erro interno — Erro de assinante do WebRTC. Tente se inscrever novamente no fluxo ou se reconectar à sessão.
Erros ao chamar OT.initPublisher():
código Descrição
1004 Erro de autenticação. Verifique a mensagem de erro para obter mais detalhes. Esse erro pode ocorrer se você passar um token vencido ao tentar se conectar a uma sessão. Ele também pode ocorrer se você passar um token ou uma chave de API inválida. Certifique-se de estar gerando o token usando a versão atual de um dos SDKs de servidor.
Erros gerais que podem ocorrer ao chamar qualquer método:
código Descrição
1011 Parâmetro inválido. Verifique se você passou valores válidos de parâmetros na chamada do método.
2000 Erro interno. Tente se reconectar à sessão e repita a ação.

Monitoramento de eventos de exceção

Para detectar todos os eventos de exceção, adicione um ouvinte de eventos para o exception evento, disparado pelo objeto OT. No entanto, é mais fácil reagir a erros nos manipuladores de conclusão de métodos específicos.