Manejo de excepciones | Web SDK
Importante: Tenga en cuenta que su ID de la aplicación ¿Es tu Clave API.
Una de las mejores prácticas a la hora de programar es escribir código que asuma y prevea que las cosas pueden salir mal. Por ejemplo, un cliente puede no estar conectado a Internet cuando intenta conectarse a una sesión.
El SDK web incluye manejadores de finalización y eventos de excepción que revelan excepciones en tiempo de ejecución.
Gestores de finalización
Para muchos métodos que se completan de forma asíncrona, el último parámetro que se pasa es una función de control de finalización. Esta función es llamada cuando el método se completa o falla. Si falla, se pasa a la función un objeto de error como parámetro.
Por ejemplo, el siguiente código llama a la función Session.connect() método, pasando un controlador de finalización:
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: Tenga en cuenta que su ID de la aplicación ¿Es tu Clave API.
Es importante implementar manejadores de finalización para ver cuando un método tiene éxito o falla. En algunos casos, puedes preguntar al usuario si existe una condición de cliente que haya causado el error. Por ejemplo, si el método error.name La propiedad se establece en «OT_NOT_CONNECTED» al llamar a la Session.connect() falla, esto indica que el cliente no está conectado a la red.
En el caso de otros errores que no sean culpa del cliente, puedes consultar el código y el mensaje de error para determinar la naturaleza del mismo. Por ejemplo, al llamar a la función Session.connect() un código de error 1004 indica que ha intentado conectarse con un token no válido. Podría tratarse de un token caducado o que no coincide con la sesión a la que se está conectando. Compruebe la propiedad message del objeto de error para más detalles.
Métodos con controladores de finalización
Los siguientes métodos del SDK web incluyen un completionHandler parámetro. Para este parámetro opcional, puedes pasar una función que se ejecutará cuando el método tenga éxito o falle:
Session.forceDisconnect()Session.forceUnpublish()Session.connect()Session.publish()Session.signal()Session.subscribe()OT.initPublisher()
Compruebe el message para obtener más detalles sobre el error.
En caso de error, el code valor del error puede tener uno de los siguientes valores:
Errores al llamar a Session.connect(): |
|
| código | Descripción |
| 1004 | Error de autenticación. Compruebe el mensaje de error para obtener más detalles. Este error puede producirse si introduce un token caducado al intentar conectarse a una sesión. También puede producirse si se introduce un token o una clave de API no válidos. Asegúrese de que está generando el token utilizando la versión actual de uno de los protocolos SDK para servidores. |
| 1005 | ID de sesión no válido. Asegúrate de generar el ID de sesión utilizando la versión actual de uno de los SDK para servidores. |
| 1006 | Conexión fallida. No se ha podido conectar a la sesión. Es posible que desee que el cliente compruebe la conexión de red. |
Errores al llamar a Session.forceDisconnect(): |
|
| código | Descripción |
| 1520 | No se puede forzar la desconexión. El token del cliente no tiene asignado el rol de moderador. Una vez que el cliente se haya conectado a la sesión, el capabilities La propiedad del objeto Session enumera las capacidades del cliente. |
Errores al llamar a Session.forceUnpublish(): |
|
| código | Descripción |
| 1530 | No se puede forzar la retirada de la publicación. El token del cliente no tiene asignado el rol de moderador. Una vez que el cliente se haya conectado a la sesión, el capabilities La propiedad del objeto Session enumera las capacidades del cliente. |
| 1535 | Forzar la retirada de la publicación en un flujo no válido. Asegúrate de que el flujo no haya salido de la sesión antes de llamar a la función forceUnpublish() método. |
Errores al llamar a Session.publish(): |
|
| código | Descripción |
| 1010 | No se puede publicar: el cliente no está conectado a la sesión. Compruebe que su aplicación hace que el cliente se conecte correctamente antes de intentar publicar. Y compruebe que el cliente no se ha desconectado antes de intentar publicar. |
| 1500 | No se puede publicar. El token del cliente no tiene asignado el rol de «publicar» ni el de «moderador». Una vez que el cliente se haya conectado a la sesión, el capabilities La propiedad del objeto Session enumera las capacidades del cliente. |
| 1601 | Error interno -- Error del editor WebRTC. Intente volver a publicar o conectarse a la sesión. |
Errores al llamar a Session.signal(): |
|
| código | Descripción |
| 1510 | No se puede establecer la conexión. Comprueba que el to del parámetro de señal se establece en un objeto Connection válido. Además, asegúrese de que está conectado a la sesión. |
Errores al llamar a Session.subscribe(): |
|
| código | Descripción |
| 1600 | Error interno -- Error del suscriptor WebRTC. Intente volver a suscribirse al flujo o volver a conectarse a la sesión. |
Errores al llamar a OT.initPublisher(): |
|
| código | Descripción |
| 1004 | Error de autenticación. Compruebe el mensaje de error para obtener más detalles. Este error puede producirse si introduce un token caducado al intentar conectarse a una sesión. También puede producirse si se introduce un token o una clave de API no válidos. Asegúrese de que está generando el token utilizando la versión actual de uno de los protocolos SDK para servidores. |
| Errores generales que pueden producirse al llamar a cualquier método: | |
| código | Descripción |
| 1011 | Parámetro no válido. Comprueba que has pasado valores de parámetro válidos en la llamada al método. |
| 2000 | Error interno. Intenta volver a conectarte a la sesión y repite la acción. |
Escucha de eventos de excepción
Para detectar todos los eventos de excepción, añada un oyente de eventos para la función exception enviado por el objeto OT. Sin embargo, es más fácil reaccionar a los errores en los manejadores de finalización de métodos específicos.