Cómo unirse a una sesión — Android
Utilizando un ID de sesión y ficha, puedes conectarte a la sesión de OpenTok utilizando el SDK de OpenTok para Android.
Este tema incluye las siguientes secciones:
- Inicialización de un objeto «Session»
- Conectarse a una sesión
- Desconectarse de una sesión
- Detectar cuándo te has desconectado de una sesión
- Reconexión automática
- Detección de la conexión y desconexión de otros clientes
Para obtener información sobre cómo crear un identificador de sesión y un token de autenticación, consulta Creación de sesiones y Creación de fichas.
Inicialización de un objeto «Session»
Antes de poder conectarte a una sesión, debes crear un objeto `Session.Builder` llamando a la función Session.Builder() constructor, pasando el contexto de aplicación de Android adecuado, tu clave API de OpenTok y un ID de sesión. A continuación, llama a la build() método del objeto Session.Builder para crear un objeto Session:
mSession = new Session.Builder(context, API_KEY, SESSION_ID)
.build();
Ten en cuenta que al llamar a la función Session.Builder.build() El método no crear una sesión de OpenTok; crea un objeto `Session`, que representa la sesión de OpenTok. Asegúrate de conservar una referencia al objeto `Session`; de lo contrario, podría ser eliminado por el recolector de basura, lo que podría provocar fallos y un comportamiento imprevisto. Para crear una sesión de OpenTok, utiliza las bibliotecas de OpenTok del lado del servidor. Consulta Creación de una sesión de OpenTok.
Añade un objeto de escucha para los eventos básicos relacionados con la sesión llamando a la función setSessionListener(Session.SessionListener listener) del objeto Session:
mSession.setSessionListener(this);
Implementa los métodos de la interfaz Session.SessionListener en el objeto que especifiques como objeto receptor de eventos. Estos métodos son llamados cuando se producen eventos relacionados con la sesión.
Conectarse a una sesión
Llame al Session.connect(token) pasando un token válido:
mSession.connect(TOKEN);
El Session.SessionListener.onConnected(Session session) El método se invoca cuando el cliente se conecta a la sesión de OpenTok.
@Override
protected void onConnected(Session session)
// This client has connected to the session.
}
El Session.SessionListener.onError(Session session, OpentokError error) cuando se produce un error en la conexión. Consulte la documentación de la enum OpentokException.ErrorCode para ver las descripciones de los valores del método code propiedad del objeto de error.
@Override
public void onError(Session session, OpentokError error) {
Log.i(LOGTAG, "Exception: " + error.getMessage());
}
Desconectarse de una sesión
Para desconectarte de una sesión, llama al Session.disconnect() método.
mSession.disconnect();
Detectar cuándo te has desconectado
El Session.SessionListener.onDisconnected(Session session) El método se invoca cuando el cliente se desconecta de la sesión de OpenTok.
@Override
public void onDisconnected(session) {
// This client has disconnected to the session.
}
Si la conexión a la sesión se interrumpe debido a un error que se produce tras una conexión correcta, el Session.SessionListener.onError(Session session, OpentokError error) El método se invoca antes de la Session.SessionListener.onDisconnected(Session session) método. El objeto OpentokError pasado al método Session.SessionListener.onError(Session session, OpentokError error) El método describe el motivo de la desconexión.
Reconexión automática
Los clientes intentarán volver a conectarse automáticamente a una sesión cuando se desconecten de forma inesperada (por ejemplo, debido a una interrupción de la conexión a la red). No es necesario añadir ningún código para que los clientes se vuelvan a conectar automáticamente, a menos que quieras responder a los eventos que se producen cuando el cliente se desconecta y se vuelve a conectar. Para ver un código de ejemplo que ilustra el uso de estos eventos, consulta el opentok-reconnection repositorio en GitHub.
Cuando se interrumpe la conexión y el cliente intenta volver a conectarse, la función Session.ReconnectionListener.onReconnecting(Session session) se llama el método. Cuando se restablece la conexión, el Session.ReconnectionListener.onReconnected(Session session) se invoca el método. Si el cliente no puede restablecer la conexión, se desconecta de la sesión de OpenTok, y el Session.SessionListener.onDisconnected(Session session) se llama al método.
En respuesta a estos sucesos, tu aplicación puede (opcionalmente) mostrar notificaciones en la interfaz de usuario que indiquen los estados de desconexión temporal, reconexión y desconexión:
// In the implementation of the Session.ReconnectionListener interface
@Override
public void onReconnecting(session) {
// Display a user interface notification.
}
public void onReconnected(session) {
// Adjust user interface.
}
// In the implementation of the Session.SessionListener interface
@Override
public void onDisconnected(session) {
// Adjust user interface.
}
Cuando tu cliente se desconecta temporalmente de una sesión, se invocan los métodos de las implementaciones de la interfaz `SubscriberKit.StreamListener` en los clientes suscritos a un flujo que publicas, tanto cuando se interrumpe el flujo publicado como cuando (y si) se reanuda automáticamente. Para obtener más información, consulta el reconexión automática sección de la guía para desarrolladores titulada «Suscribirse a flujos».
Por defecto, cualquier señal que envíe mientras su cliente está temporalmente desconectado de una sesión se pone en cola y se envía cuando (y si) se reconecta con éxito. Puede utilizar la función Session.sendSignal(String type, String data, Connection connection, boolean retryAfterReconnect) y establecer el método retryAfterReconnect parámetro a false para evitar que las señales se pongan en cola mientras usted está desconectado. Para más información, consulte Evitar que se envíen señales durante la reconexión automática.
Detección de la conexión y desconexión de otros clientes
Cuando esté conectado a una sesión, el Session.ConnectionListener.onConnectionCreated(Session session, Connection connection) El método se invoca cuando un nuevo cliente (que no sea el tuyo) se conecta a la sesión.
El Session.ConnectionListener.onConnectionDestroyed(Session session, Connection connection) es llamado cuando un cliente (que no sea el suyo) abandona la sesión. El objeto Connection pasado al método define el sombrero de conexión que ha abandonado la sesión.
Añada un objeto receptor para estos eventos de conexión llamando a la función setConnectionListener(Session.ConnectionListener listener) del objeto Session:
mSession.setSessionListener(this);
@Override
public void onConnectionCreated(Session session, Connection connection)
{
// New client connected to the session
}
@Override
public void onConnectionDestroyed(Session session, Connection connection)
{
// A client disconnected from the session
}