Rejoindre une session — Android

En utilisant un ID de la session et jeton, vous pouvez vous connecter à la session OpenTok à l'aide du SDK OpenTok pour Android.

Cette rubrique comprend les sections suivantes :

Pour plus d'informations sur la création d'un identifiant de session et d'un jeton d'authentification, consultez Création de la session et Création de jetons.

Initialisation d'un objet Session

Avant de pouvoir vous connecter à une session, vous devez instancier un objet `Session.Builder` en appelant la méthode Session.Builder() constructor, en lui transmettant le contexte d'application Android approprié, votre clé API OpenTok et un identifiant de session. Appelez ensuite la méthode build() de l'objet Session.Builder pour créer un objet Session :

mSession = new Session.Builder(context, API_KEY, SESSION_ID)
  .build();

Notez que l'appel à la fonction Session.Builder.build() n'est pas créer une session OpenTok ; cela crée un objet `Session`, qui représente la session OpenTok. Veillez à conserver une référence à cet objet `Session`, sinon il risque d'être supprimé par le ramasse-miettes, ce qui peut entraîner des plantages et un comportement imprévisible. Vous créez une session OpenTok à l'aide des bibliothèques côté serveur d'OpenTok. Voir Création d'une session OpenTok.

Ajoutez un objet d'écoute pour les événements de base liés à la session en appelant la fonction setSessionListener(Session.SessionListener listener) de l'objet Session :

mSession.setSessionListener(this);

Implémentez les méthodes de l'interface Session.SessionListener dans l'objet que vous spécifiez en tant qu'objet d'écoute d'événements. Ces méthodes sont appelées lorsque des événements liés à la session se produisent.

Connexion à une session

Appeler le Session.connect(token) en transmettant un jeton valide :

mSession.connect(TOKEN);

Les Session.SessionListener.onConnected(Session session) La méthode est appelée lorsque le client se connecte à la session OpenTok.

@Override
protected void onConnected(Session session)
  // This client has connected to the session.
}

Les Session.SessionListener.onError(Session session, OpentokError error) est appelée en cas d'erreur de connexion. Voir la documentation de l'enum OpentokException.ErrorCode pour la description des valeurs de l'enum code de l'objet d'erreur.

@Override
public void onError(Session session, OpentokError error) {
  Log.i(LOGTAG, "Exception: " + error.getMessage());
}

Déconnexion d'une session

Pour se déconnecter d'une session, appelez le Session.disconnect() méthode.

mSession.disconnect();

Détection de la déconnexion

Les Session.SessionListener.onDisconnected(Session session) Cette méthode est appelée lorsque le client se déconnecte de la session OpenTok.

@Override
public void onDisconnected(session) {
  // This client has disconnected to the session.
}

Si la connexion à la session est interrompue en raison d'une erreur survenant après une connexion réussie, le message Session.SessionListener.onError(Session session, OpentokError error) est appelée avant la méthode Session.SessionListener.onDisconnected(Session session) méthode. L'objet OpentokError transmis à la méthode Session.SessionListener.onError(Session session, OpentokError error) décrit la raison de la déconnexion.

Reconnexion automatique

Les clients tenteront de se reconnecter automatiquement à une session lorsqu'ils se déconnectent de manière inattendue (par exemple, en raison d'une interruption de la connexion réseau). Vous n'avez pas besoin d'ajouter de code pour que les clients se reconnectent automatiquement, sauf si vous souhaitez réagir aux événements qui se produisent lorsque votre client se déconnecte puis se reconnecte. Pour obtenir un exemple de code illustrant l'utilisation de ces événements, consultez la section opentok-reconnexion sur GitHub.

Lorsque la connexion est interrompue et que le client tente de se reconnecter, la fonction Session.ReconnectionListener.onReconnecting(Session session) est appelée. Lorsque la connexion est rétablie, la méthode Session.ReconnectionListener.onReconnected(Session session) méthode est appelée. Si le client ne parvient pas à rétablir la connexion, il se déconnecte de la session OpenTok, et le Session.SessionListener.onDisconnected(Session session) est appelée.

En réponse à ces événements, votre application peut (éventuellement) afficher des notifications d'interface utilisateur indiquant les états de déconnexion temporaire, de reconnexion et de déconnexion :

// 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.
}

Lorsque votre client se déconnecte temporairement d'une session, les méthodes définies dans les implémentations de l'interface `SubscriberKit.StreamListener` au sein des clients abonnés à un flux que vous publiez sont appelées lorsque votre flux publié est interrompu et lorsqu'il reprend automatiquement (le cas échéant). Pour plus d'informations, consultez la section reconnexion automatique section du guide du développeur intitulée « S'abonner à des flux ».

Par défaut, tous les signaux que vous envoyez lorsque votre client est temporairement déconnecté d'une session sont mis en file d'attente et envoyés lorsque (et si) vous vous reconnectez avec succès. Vous pouvez utiliser la fonction Session.sendSignal(String type, String data, Connection connection, boolean retryAfterReconnect) et définir la méthode retryAfterReconnect au paramètre false pour éviter que des signaux soient mis en file d'attente pendant que vous êtes déconnecté. Pour plus d'informations, voir Empêcher l'envoi de signaux lors d'une reconnexion automatique.

Détection de la connexion et de la déconnexion d'autres clients

Lorsque vous êtes connecté à une session, la fenêtre Session.ConnectionListener.onConnectionCreated(Session session, Connection connection) est appelée lorsqu'un nouveau client (autre que le vôtre) se connecte à la session.

Les Session.ConnectionListener.onConnectionDestroyed(Session session, Connection connection) est appelée lorsqu'un client (autre que le vôtre) quitte la session. L'objet Connection passé dans la méthode définit la connexion qui a quitté la session.

Ajoutez un objet d'écoute pour ces événements de connexion en appelant la fonction setConnectionListener(Session.ConnectionListener listener) de l'objet 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
}