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.