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.
En 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() 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 tiene el valor "OT_NOT_CONNECTED" cuando se llama a la propiedad Session.connect() falla, esto indica que el cliente no está conectado a la red.
Para otras condiciones de error que no son culpa del cliente, puede examinar el código de error y el mensaje para ver la naturaleza del error. Por ejemplo, cuando se llama 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 gestores de finalización
Los siguientes métodos del SDK Web incluyen una función completionHandler parámetro. Para este parámetro opcional, puede pasar una función que se llama cuando el método tiene éxito o falla:
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 | Identificador de sesión no válido. Asegúrese 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 el rol de moderador. Una vez que el cliente se ha conectado a la sesión, la función capabilities del objeto Session enumera las capacidades del cliente. |
Errores al llamar a Session.forceUnpublish(): | |
| código | Descripción |
| 1530 | No se puede forzar la despublicación. El token del cliente no tiene el rol de moderador. Una vez que el cliente se ha conectado a la sesión, la función capabilities del objeto Session enumera las capacidades del cliente. |
| 1535 | Forzar la anulación de la publicación de un flujo no válido. Asegúrese de que el flujo no ha abandonado 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 el rol establecido para publicar o moderador. Una vez que el cliente se ha conectado a la sesión, la función capabilities 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 emitir la señal. Compruebe 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. Compruebe que ha introducido parámetros válidos en la llamada al método. |
| 2000 | Error interno. Intente volver a conectarse a la sesión y vuelva a intentar 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.