An einer Sitzung teilnehmen – Android

Mit einem Sitzungs-ID und Token, können Sie mithilfe des OpenTok-Android-SDK eine Verbindung zur OpenTok-Sitzung herstellen.

Dieses Thema umfasst die folgenden Abschnitte:

Informationen zum Erstellen einer Sitzungs-ID und eines Authentifizierungstokens finden Sie unter Erstellung von Sitzungen und Token-Erstellung.

Initialisierung eines Session-Objekts

Bevor Sie eine Verbindung zu einer Sitzung herstellen können, müssen Sie ein `Session.Builder`-Objekt instanziieren, indem Sie die Methode Session.Builder() Konstruktor, wobei Sie den entsprechenden Android-Anwendungskontext, Ihren OpenTok-API-Schlüssel und eine Sitzungs-ID übergeben. Rufen Sie anschließend die build() Methode des Session.Builder-Objekts, um ein Session-Objekt zu erstellen:

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

Beachten Sie, dass der Aufruf der Session.Builder.build() Methode nicht erstellen. eine OpenTok-Sitzung; dabei wird ein „Session“-Objekt erstellt, das die OpenTok-Sitzung repräsentiert. Achten Sie darauf, einen Verweis auf das „Session“-Objekt zu speichern, da es andernfalls möglicherweise von der Garbage Collection entfernt wird, was zu Abstürzen und unvorhersehbarem Verhalten führen kann. Sie erstellen eine OpenTok-Sitzung mithilfe der serverseitigen OpenTok-Bibliotheken. Siehe Eine OpenTok-Sitzung erstellen.

Fügen Sie ein Listener-Objekt für grundlegende sitzungsbezogene Ereignisse hinzu, indem Sie die setSessionListener(Session.SessionListener listener) Methode des Session-Objekts:

mSession.setSessionListener(this);

Implementieren Sie die Methoden der Schnittstelle Session.SessionListener in dem Objekt, das Sie als Ereignis-Listener-Objekt angeben. Diese Methoden werden aufgerufen, wenn sitzungsbezogene Ereignisse auftreten.

Verbinden mit einer Sitzung

Rufen Sie die Session.connect(token) Methode, wobei ein gültiges Token übergeben wird:

mSession.connect(TOKEN);

Die Session.SessionListener.onConnected(Session session) Die Methode wird aufgerufen, wenn der Client eine Verbindung zur OpenTok-Sitzung herstellt.

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

Die Session.SessionListener.onError(Session session, OpentokError error) wird aufgerufen, wenn ein Fehler bei der Verbindung aufgetreten ist. Siehe die Dokumentation für das OpentokException.ErrorCode enum für Beschreibungen der Werte der code Eigenschaft des Fehlerobjekts.

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

Trennen der Verbindung zu einer Sitzung

Um eine Sitzung zu beenden, rufen Sie die Funktion Session.disconnect() Methode.

mSession.disconnect();

Erkennen, wenn Sie die Verbindung unterbrochen haben

Die Session.SessionListener.onDisconnected(Session session) Die Methode wird aufgerufen, wenn der Client die Verbindung zur OpenTok-Sitzung trennt.

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

Wenn die Verbindung zur Sitzung aufgrund eines Fehlers unterbrochen wird, der nach einer erfolgreichen Verbindung auftritt, wird die Session.SessionListener.onError(Session session, OpentokError error) Methode wird vor dem Aufruf der Session.SessionListener.onDisconnected(Session session) Methode. Das OpentokError-Objekt, das an die Methode Session.SessionListener.onError(Session session, OpentokError error) Methode beschreibt den Grund für die Unterbrechung der Verbindung.

Automatische Wiedereinschaltung

Clients versuchen, die Verbindung zu einer Sitzung automatisch wiederherzustellen, wenn die Verbindung unerwartet unterbrochen wird (beispielsweise aufgrund eines Ausfalls der Netzwerkverbindung). Sie müssen keinen Code hinzufügen, damit sich die Clients automatisch wieder verbinden, es sei denn, Sie möchten auf Ereignisse reagieren, die auftreten, wenn Ihr Client die Verbindung trennt und wieder herstellt. Beispielcode, der die Verwendung dieser Ereignisse veranschaulicht, finden Sie unter openok-reconnection Repo auf GitHub.

Wenn die Verbindung unterbrochen wird und der Client versucht, die Verbindung wiederherzustellen, wird die Session.ReconnectionListener.onReconnecting(Session session) Methode aufgerufen wird. Wenn die Verbindung wiederhergestellt ist, wird die Session.ReconnectionListener.onReconnected(Session session) Methode aufgerufen wird. Kann der Client die Verbindung nicht wiederherstellen, trennt er die Verbindung zur OpenTok-Sitzung, und die Session.SessionListener.onDisconnected(Session session) Methode aufgerufen wird.

Als Reaktion auf diese Ereignisse kann Ihre Anwendung (optional) Benachrichtigungen auf der Benutzeroberfläche anzeigen, die den Zustand der vorübergehenden Unterbrechung, der Wiederverbindung und der Trennung der Verbindung angeben:

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

Wenn Ihr Client vorübergehend die Verbindung zu einer Sitzung unterbricht, werden Methoden in den Implementierungen der Schnittstelle `SubscriberKit.StreamListener` in Clients, die einen von Ihnen veröffentlichten Stream abonnieren, aufgerufen, sobald Ihr veröffentlichter Stream unterbrochen wird und wenn (und falls) er automatisch wieder aufgenommen wird. Weitere Informationen finden Sie unter automatische Wiederverbindung Abschnitt im Entwicklerhandbuch unter „Streams abonnieren“.

Standardmäßig werden alle Signale, die Sie senden, während Ihr Client vorübergehend von einer Sitzung getrennt ist, in eine Warteschlange gestellt und gesendet, sobald (und falls) Sie die Verbindung erfolgreich wiederherstellen. Sie können die Session.sendSignal(String type, String data, Connection connection, boolean retryAfterReconnect) Methode und setzen Sie die retryAfterReconnect Parameter zu false um zu verhindern, dass Signale in die Warteschlange gestellt werden, während Sie nicht verbunden sind. Für weitere Informationen, siehe Verhindern des Sendens von Signalen während der automatischen Wiederherstellung der Verbindung.

Erkennen, wann andere Clients eine Verbindung hergestellt und getrennt haben

Wenn Sie mit einer Sitzung verbunden sind, wird die Session.ConnectionListener.onConnectionCreated(Session session, Connection connection) Methode wird aufgerufen, wenn sich ein neuer Client (außer Ihrem eigenen) mit der Sitzung verbindet.

Die Session.ConnectionListener.onConnectionDestroyed(Session session, Connection connection) wird aufgerufen, wenn ein Client (ein anderer als Ihr eigener) die Sitzung verlässt. Das an die Methode übergebene Connection-Objekt definiert die Verbindung, die die Sitzung verlassen hat.

Fügen Sie ein Listener-Objekt für diese Verbindungsereignisse hinzu, indem Sie die setConnectionListener(Session.ConnectionListener listener) Methode des Session-Objekts:

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
}