Beitritt zu einer Sitzung
In dieser Anleitung erfahren Sie, wie Sie Ihre Anwendung mit einer Videositzung verbinden.
Voraussetzung
Sie benötigen einen gültigen Vonage Video API Account. Wenn Sie noch keinen haben, können Sie sich für eine kostenlose Testversion anmelden.
Sie sollten auch sicherstellen, dass Sie über eine Sitzung erstellt und ein Token erzeugt für alle beteiligten Nutzer.
Initialisierung eines Session-Objekts
Bevor Sie eine Verbindung zu einer Sitzung herstellen können, müssen Sie ein Sitzungsobjekt instanziieren, indem Sie eines der Client-SDKs verfügbar.
Instanzieren Sie ein Session-Objekt, indem Sie die OT.initSession() Methode mit Ihrer Anwendungs-ID und der entsprechenden Sitzungs-ID:
Die OT.initSession() Methode gibt ein Session-Objekt zurück, über das die nachfolgenden API-Aufrufe erfolgen.
Beachten Sie, dass der Aufruf der OT.initSession() Methode nicht erstellen. eine Sitzung; es wird ein JavaScript-Session-Objekt erstellt, das eine bestehende Sitzung darstellt. Sie können eine Sitzung mit dem serverseitigen SDK erstellen. Siehe Erstellen einer Sitzung.
Wenn der Browser des Benutzers WebRTC nicht unterstützt, wird der Aufruf von OT.initSession() führt dazu, dass auf der Seite eine Meldung für den Benutzer angezeigt wird. Um die WebRTC-Unterstützung zu prüfen und zu verhindern, dass diese Meldung angezeigt wird, können Sie die Funktion OT.checkSystemRequirements() Methode vor dem Aufruf OT.initSession():
Instanzieren Sie ein Session.Builder-Objekt, indem Sie die Funktion Session.Builder() Konstruktor und übergeben Sie den entsprechenden Android-Anwendungskontext, Ihre Vonage Video-Anwendungs-ID und eine Sitzungs-ID. Rufen Sie dann den build() Methode des Session.Builder-Objekts, um ein Session-Objekt zu erstellen:
Beachten Sie, dass der Aufruf der Session.Builder.build() Methode nicht erstellen. eine Vonage Video-Sitzung; es wird das Java Session-Objekt erstellt, das eine bestehende Vonage Video-Sitzung darstellt. Sie erstellen eine Vonage Video-Sitzung mithilfe der serverseitigen Bibliotheken von Vonage Video. Siehe Erstellen einer Vonage-Videositzung.
Fügen Sie ein Listener-Objekt für grundlegende sitzungsbezogene Ereignisse hinzu, indem Sie die setSessionListener(Session.SessionListener listener) Methode des Session-Objekts:
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.
Instanzieren Sie ein OTSession-Objekt, indem Sie die OTSession init(apiKey:sessionId:delegate:) Methode mit Ihrer Anwendungs-ID und der entsprechenden Sitzungs-ID:
Beachten Sie, dass der Aufruf der OTSession init(apiKey: sessionId: delegate:) Methode nicht erstellen. eine Vonage Video-Sitzung; es wird das Swift OTSession-Objekt erstellt, das eine bestehende Vonage Video-Sitzung darstellt. Sie erstellen eine Vonage Video-Sitzung mithilfe der serverseitigen Bibliotheken von Vonage Video.
Siehe Erstellen einer Vonage-Videositzung.
Implementieren Sie die Methoden der OTSessionDelegate Protokoll in dem Objekt, das Sie als Delegatenobjekt angeben. Diese Methoden werden aufgerufen, wenn sitzungsbezogene Ereignisse auftreten.
Bevor Sie eine Verbindung zu einer Sitzung herstellen können, instanziieren Sie ein OTSession-Objekt, indem Sie die [OTSession initWithApiKey: sessionId: delegate:] Methode mit Ihrer Anwendungs-ID und der entsprechenden Sitzungs-ID:
Beachten Sie, dass der Aufruf der [OTSession initWithApiKey:sessionId:delegate:] Methode nicht erstellen. eine Vonage Video-Sitzung; es wird das Objective-C OTSession-Objekt erstellt, das eine bestehende Vonage Video-Sitzung darstellt. Sie erstellen eine Vonage Video-Sitzung mithilfe der serverseitigen Bibliotheken von Vonage Video. Siehe Erstellen einer Vonage-Videositzung.
Implementieren Sie die Methoden des OTSessionDelegate-Protokolls in dem Objekt, das Sie als Delegatenobjekt angeben. Diese Methoden werden aufgerufen, wenn sitzungsbezogene Ereignisse auftreten.
Instanzieren Sie ein Session-Objekt, indem Sie die Session() Konstruktor und übergibt den entsprechenden Windows-Anwendungskontext, Ihre Anwendungs-ID und eine Vonage Video-Sitzungs-ID:
session = new Session(Context.Instance, APPLICATION_ID, SESSION_ID);
Beachten Sie, dass der Aufruf der Session() Konstruktor nicht erstellen. eine Vonage Video-Sitzung; es wird ein C#-Session-Objekt erstellt, das eine bestehende Vonage Video-Sitzung darstellt. Sie erstellen eine Vonage Video-Sitzung mithilfe der serverseitigen Bibliotheken von Vonage Video. Siehe Erstellen einer Vonage-Videositzung.
Sie werden Handler für grundlegende sitzungsbezogene Ereignisse hinzufügen wollen:
session.Connected += Session_Connected;
session.Disconnected += Session_Disconnected;
session.Error += Session_Error;
session.ConnectionCreated += Session_ConnectionCreated;
session.StreamReceived += Session_StreamReceived;
session.StreamDropped += Session_StreamDropped;
Sie sollten jede der Rückrufmethoden implementieren. Zum Beispiel behandelt diese Methode ConnectionCreated Ereignis (das eintritt, wenn der Client eine Verbindung mit der Vonage Video-Sitzung herstellt):
private void Session_Connected(object sender, EventArgs e)
{
Console.WriteLine("Session connected connection id:" + session.Connection.Id);
}
Anmerkung: Die Klasse Session implementiert die Schnittstelle System.IDisposable. Stellen Sie sicher, dass Sie die Dispose() Methode des Session-Objekts, um ihre Ressourcen freizugeben, wenn Sie das Objekt nicht mehr benötigen (z. B. wenn die Anwendung oder das Fenster geschlossen wird).
Erstellen Sie eine Struktur vom Typ otc_session_callbacksund Funktionszeiger auf Callback-Funktionsmitglieder. Zum Beispiel:
Verwenden Sie die user_data Mitglied des otc_session_callbacks Struktur, um Daten festzulegen, auf die Sie in den Callback-Funktionen verweisen möchten. In diesem Beispiel setzen wir ihn auf einen Zeiger auf ein String-Objekt. Es könnte aber auch ein Zeiger auf eine Instanz eines anderen Typs sein, der sinnvolle Informationen enthält.
Die anderen Mitglieder der otc_session_callbacks Struktur sind Callback-Funktionen, die aufgerufen werden, wenn Ereignisse im Zusammenhang mit der Vonage Video-Sitzung auftreten. Das vorherige Beispiel enthält Rückrufe für Folgendes:
on_connected\-- Wird aufgerufen, wenn dieotc_session_connect()Funktion (siehe unten) verbindet die Instanz erfolgreich mit einer Vonage Video-Sitzung.on_stream_received-- Wird aufgerufen, wenn ein neuer Stream in der Vonage Video-Sitzung vorhanden ist (wenn ein anderer Client einen Stream in der Sitzung veröffentlicht).on_stream_dropped-- Wird aufgerufen, wenn der Stream eines anderen Clients von der Vonage Video-Sitzung getrennt wird. Dies kann passieren, wenn der Client die Veröffentlichung des Streams stoppt oder wenn die Netzwerkverbindung des Clients unterbrochen wird.on_disconnected-- Wird aufgerufen, wenn die Anwendung die Verbindung mit der Vonage Video-Sitzung trennt (siehe unten).on_error-- Wird aufgerufen, wenn bei der Verbindung zur Sitzung ein Fehler auftritt. Diese Funktion enthält Parameter für einen Fehlerstring und einen Fehlercode, der durch denotc_session_error_codeenum.
Alle Rückrufe erfolgen nicht über die Anwendung oder den Hauptthread, sondern über einen internen Thread. Die Anwendung sollte den Rückruf so schnell wie möglich zurückgeben, um ein Blockieren des internen Threads zu vermeiden.
Siehe otc_session_callbacks in der Vonage Video Linux SDK-Referenz für Details zu den einzelnen Callback-Funktionen.
Nach der Initialisierung der otc_session_callbacks Struktur, rufen Sie die otc_session_new() Funktion, wobei Sie Ihre Anwendungs-ID-Zeichenkette, die Vonage Video Sitzungs-ID-Zeichenkette und einen Zeiger auf die otc_session_callbacks Struktur:
Die otc_session_new() Funktion gibt eine otc_session Struktur, die eine Vonage Video-Sitzung darstellt.
Um erweiterte Sitzungseinstellungen zu verwenden, rufen Sie den otc_session_new_with_settings()anstelle der otc_session_new() Funktion. Diese Funktion nimmt eine settings Parameter, der ein Zeiger auf eine otc_session_settings Struktur, die die erweiterten Einstellungen definiert. Der folgende Code verwendet zum Beispiel die Struktur otc\_session_settings_new () Funktion zur Instanziierung einer otc_session_settings Struktur und ruft otc_session_settings_set_connection_events_suppressed(OTC_TRUE) um das SDK Verbindungsereignisse unterdrücken zu lassen, um große interaktive Videositzungen zu unterstützen. Es übergibt dann die otc_session_settings Struktur in die otc_session_new_with_settings() Funktion:
Zusätzlich zu otc_session_settings_set_connection_events_suppressed()Mit den folgenden Funktionen können Sie erweiterte Einstellungen für eine Sitzung vornehmen:
otc_session_settings_set_custom_ice_config()- Ermöglicht die benutzerdefinierte ICE-Server-Konfiguration. Dies ist Teil der konfigurierbare TURN-Funktion.otc_session_settings_set_ip_whitelist()- Dies unterstützt die Funktion der erlaubten IP-Adresse verfügbar als Add-on-Feature.otc_session_settings_set_proxy_url()- Legt eine IP-Proxy-URL fest. Siehe die IP-Proxy-Entwicklerhandbuch.
Verbinden mit einer Sitzung
Sobald Sie eine Sitzungs-ID haben und ein Sitzungsobjekt damit initialisiert haben, besteht der nächste Schritt darin, eine Verbindung zur Sitzung herzustellen.
Hier erfahren Sie, wie Sie sich mit den Sitzungen verbinden können, indem Sie die Plattform/Sprache Ihrer Wahl auswählen:
Wenn Sie eine OTSession-Komponente hinzufügen, wird automatisch eine Verbindung zur Vonage Video API-Sitzung hergestellt.
Ersetzen Sie your-application-ID, your-session-idund your-session-token mit Ihrem API-Schlüssel, a Sitzungs-IDund eine Token für die Sitzung.
Beachten Sie, dass Sie die OTPublisher und OTSubscriber Komponenten und Kinder des OTSession Komponente.
Sie können eine error und sessionConnected Ereignisbehandler in der OTSession Komponente. Der Error Event Handler wird aufgerufen, wenn der Client keine Verbindung zur Sitzung herstellen kann. Und der sessionConnected wird aufgerufen, wenn der Client eine Verbindung zur Sitzung herstellt:
Rufen Sie die connect() Methode, wobei ein Token und eine Abschlusshandlerfunktion übergeben werden:
Ein Fehlerobjekt wird an den Completion-Handler der connect Ereignis, wenn der Client keine Verbindung zur Sitzung herstellen kann. Andernfalls wird kein Fehlerobjekt übergeben, was bedeutet, dass der Client erfolgreich mit der Sitzung verbunden wurde.
Das Session-Objekt sendet auch eine sessionConnected Ereignis, wenn der Client eine Verbindung zur Sitzung herstellt. Und das OT-Objekt sendet ein exception Ereignis, wenn ein Fehler bei der Verbindung auftritt. Es ist jedoch einfacher, den Erfolg der Verbindung zu überprüfen, indem man einen Completion-Handler an die connect() Methode als letzten Parameter.
Rufen Sie die Session.connect(token) Methode, wobei ein gültiges Token übergeben wird:
Die Session.SessionListener.onConnected(Session session) Methode wird aufgerufen, wenn der Client eine Verbindung zur Vonage Video-Sitzung herstellt.
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.
Rufen Sie die OTSession connect(withToken:error:) Methode und übergibt das Token für den Client:
Die OTSessionDelegate sessionDidConnect(_:) Nachricht wird gesendet, wenn der Client eine Verbindung mit der Vonage Video-Sitzung herstellt.
Die OTSessionDelegate session(_:didFailWithError:) wird gesendet, wenn ein Fehler bei der Verbindung aufgetreten ist.
Siehe die Dokumentation für das OTSessionErrorCode enum für Beschreibungen der Werte der code Eigenschaft des Fehlerobjekts.
Überwachung des Verbindungsstatus (Swift)
Sie können den Verbindungsstatus abfragen, indem Sie die sessionConnectionStatus Eigenschaft des OTSession-Objekts:
Gültige Werte sind in der OTSessionConnectionStatus enum.
Sie können einen Key-Value Observer verwenden, um diese Eigenschaft zu überwachen. Allerdings muss der OTSessionDelegate sessionDidConnect(_:) und OTSessionDelegate sessionDidDisconnect(_:) Nachrichten werden an den Delegierten der Sitzung gesendet, wenn die Sitzung verbunden und getrennt wird.
Rufen Sie die [OTSession connectWithToken:error:] Methode und übergibt das Token für den Client:
Die [OTSessionDelegate session:didConnect] Nachricht wird gesendet, wenn der Client eine Verbindung mit der Vonage Video-Sitzung herstellt.
Die OTSessionDelegate session:didFailWithError:] wird gesendet, wenn ein Fehler beim Verbindungsaufbau auftritt. Siehe die Dokumentation für das OTSessionErrorCode enum für Beschreibungen der Werte der code Eigenschaft des Fehlerobjekts.
Überwachung des Verbindungsstatus (Objective C)
Sie können den Verbindungsstatus abfragen, indem Sie die sessionConnectionStatus Eigenschaft des OTSession-Objekts:
Gültige Werte sind in der OTSessionConnectionStatus enum.
Sie können einen Key-Value Observer verwenden, um diese Eigenschaft zu überwachen. Allerdings muss der [OTSessionDelegate sessionDidConnect:] und [OTSessionDelegate sessionDidDisconnect:] Nachrichten werden an den Delegierten der Sitzung gesendet, wenn die Sitzung verbunden und getrennt wird.
Rufen Sie die Session.connect(token) Methode und übergibt ein gültiges OpenTok-Token:
session.Connect(TOKEN);
Die Session.Connected wird gesendet, wenn sich der Client mit der OpenTok-Sitzung verbindet.
session.ConnectionCreated += Session_ConnectionCreated;
private void Session_Connected(object sender, EventArgs e)
{
Console.WriteLine("Session connected connection id:" + session.Connection.Id);
}
Die Session.Error wird gesendet, wenn ein Fehler bei der Verbindung aufgetreten ist:
session.Error += Session_Error;
private void Session_Error(object sender, Session.ErrorEventArgs e)
{
Console.WriteLine("Session error:" + e.ErrorCode);
}
Siehe die Dokumentation für das OpenTok.ErrorCode enum für Beschreibungen von Werten der code Eigenschaft des Fehlerobjekts.
Rufen Sie die otc_session_connect() Funktion:
Diese Funktion verbindet den Client mit der Vonage Video-Sitzung. Sie benötigt zwei Argumente:
- Die
otc_sessionStruktur-Instanz. - Die Vonage Video-Token-Zeichenfolge.
Nach erfolgreicher Verbindung wird die on_connected Callback-Funktion des otc_session_callbacks Struktur aufgerufen wird. Im Fehlerfall wird die on_error Callback-Funktion des otc_session_callbacks Struktur aufgerufen wird.
Trennen der Verbindung zu einer Sitzung
Erfahren Sie, wie Sie die Verbindung eines Benutzers zu einer Sitzung trennen können.
Der Client trennt die Verbindung zur Sitzung, wenn Sie die Verbindung zum OTSession Komponente.
Um eine Sitzung zu beenden, rufen Sie die Funktion disconnect() Methode des Session-Objekts:
Um eine Sitzung zu beenden, rufen Sie die Funktion Session.disconnect() Methode.
Erkennen, wenn Sie die Verbindung unterbrochen haben (Android)
Die Session.SessionListener.onDisconnected(Session session) Methode wird aufgerufen, wenn der Client die Verbindung zur Sitzung trennt.
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.
Um eine Sitzung zu beenden, rufen Sie die Funktion OTSession disconnect(_:) Methode.
Erkennen, wenn Sie die Verbindung unterbrochen haben (Swift)
Die OTSessionDelegate sessionDidDisconnect(_:) wird an den Delegierten der Sitzung gesendet, wenn die Sitzung getrennt wird.
Beachten Sie, dass Sitzungen automatisch unterbrochen werden, wenn die Anwendung angehalten wird.
Wenn die Verbindung zur Sitzung aufgrund eines Fehlers unterbrochen wird, der nach einer erfolgreichen Verbindung auftritt, wird die OTSessionDelegate session(_:didFailWithError:) Nachricht wird vor der OTSessionDelegate sessionDidDisconnect(_:) Nachricht.
Die OTSessionErrorCode enum definiert die code Eigenschaft des OTError-Objekts, das an die Funktion OTSessionDelegate session(_:didFailWithError:) und beschreibt den Grund für die Unterbrechung der Verbindung.
Um eine Sitzung zu beenden, rufen Sie die Funktion [OTSession disconnect:] Methode.
Erkennen, wenn Sie die Verbindung getrennt haben (Objective C)
Die [OTSessionDelegate sessionDidDisconnect:] wird an den Delegierten der Sitzung gesendet, wenn die Sitzung getrennt wird.
Beachten Sie, dass Sitzungen automatisch unterbrochen werden, wenn die Anwendung angehalten wird.
Wenn die Verbindung zur Sitzung aufgrund eines Fehlers unterbrochen wird, der nach einer erfolgreichen Verbindung auftritt, wird die [OTSessionDelegate session:DidFailWithError:] Nachricht wird vor der [OTSessionDelegate sessionDidDisconnect:] Nachricht. Die Aufzählung OTSessionErrorCode definiert die code Eigenschaft des OTError-Objekts, das an die Funktion [OTSessionDelegate session:DidFailWithError:] und beschreibt den Grund für die Unterbrechung der Verbindung.
Um eine Sitzung zu beenden, rufen Sie die Funktion Session.Disconnect() Methode:
session.Disconnect();
Erkennen, wenn Sie die Verbindung getrennt haben (Windows)
Die Session.Disconnected Nachricht wird gesendet, wenn der Client die Verbindung mit der Vonage Video-Sitzung trennt.
private void Session_Disconnected(object sender, EventArgs e)
{
Console.WriteLine("Session disconnected");
}
Wenn die Verbindung zur Sitzung aufgrund eines Fehlers unterbrochen wird, der nach einer erfolgreichen Verbindung auftritt, wird die Session.Error Ereignis wird vor dem Ereignis Session.Disconnected Veranstaltung. Die ErrorEventArgs Objekt, das an die Session.Error Ereignishandler den Grund für den Verbindungsabbruch definieren.
Um eine Sitzung zu beenden, rufen Sie die Funktion otc_session_disconnect() Funktion:
Wenn Sie die Verbindung zur Sitzung nicht wiederherstellen wollen, sollten Sie die Funktion otc_session_delete() und otc_destroy() Funktionen:
Erkennen, wenn Sie die Verbindung getrennt haben (Linux)
Wenn der Client die Verbindung zur OpenTok-Sitzung trennt, wird die on_disconnected Callback-Funktion des otc_session_callbacks Struktur aufgerufen wird.
Erkennen, wenn Clients eine Verbindung hergestellt und getrennt haben
Erfahren Sie, wie Sie erkennen können, wann ein Client eine Verbindung herstellt und die Verbindung zu einer Sitzung trennt.
Die OTSession Objekt sendet eine connectionCreated Ereignis, wenn sich ein neuer Client (außer Ihrem eigenen) mit der Sitzung verbindet. Das OTSession-Objekt sendet ein connectionDestroyed Ereignis, wenn andere Clients die Sitzung verlassen. Diese Ereignisse werden durch den ConnectionEvent Klasse, die über eine connection Objekt, bei dem es sich um ein Connection-Objekt für die mit dem Ereignis verbundene (erstellte oder zerstörte) Verbindung handelt:
Das Session-Objekt sendet eine connectionCreated Ereignis, wenn sich ein neuer Client (einschließlich Ihres eigenen) mit der Sitzung verbindet. Das Session-Objekt sendet ein connectionDestroyed Ereignis, wenn andere Clients die Sitzung verlassen. Diese Ereignisse werden durch die Klasse ConnectionEvent definiert, die über eine connection Objekt, bei dem es sich um ein Connection-Objekt für die mit dem Ereignis verbundene (erstellte oder zerstörte) Verbindung handelt:
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:
Die OTSessionDelegate session(_: connectionCreated:) Nachricht wird an den Delegierten der Sitzung gesendet, wenn ein anderer Client eine Verbindung zur Sitzung herstellt (und für jeden Client, der mit der Sitzung verbunden ist, wenn Sie eine Verbindung herstellen).
Die OTSessionDelegate session(_: connectionDestroyed:) Nachricht wird an den Delegierten der Sitzung gesendet, wenn ein anderer Client die Verbindung zur Sitzung trennt.
Die [OTSessionDelegate session:connectionCreated:] Nachricht wird an den Delegierten der Sitzung gesendet, wenn ein anderer Client eine Verbindung zur Sitzung herstellt (und für jeden Client, der mit der Sitzung verbunden ist, wenn Sie eine Verbindung herstellen).
Die [OTSessionDelegate session:connectionDestroyed:] Nachricht wird an den Delegierten der Sitzung gesendet, wenn ein anderer Client die Verbindung zur Sitzung trennt.
Wenn Sie mit einer Sitzung verbunden sind, wird die Session.ConnectionCreated wird gesendet, wenn ein neuer Client (ein anderer als Ihr eigener) eine Verbindung zu der Sitzung herstellt. Der ConnectionEventArgs Objekt, das an den Event-Listener übergeben wird, definiert die Verbindung, die die Sitzung verlassen hat:
session.ConnectionCreated += Session_ConnectionCreated;
private void Session_ConnectionCreated(object sender, EventArgs e)
{
// Another client connected to the session.
}
Die Session.ConnectionDropped Ereignis wird gesendet, wenn ein Client (außer Ihrem eigenen) die Sitzung verlässt. Die ConnectionEventArgs Objekt, das an den Ereignis-Listener übergeben wird, definiert die Verbindung, die die Sitzung verlassen hat.
session.ConnectionCreated += Session_ConnectionDropped;
private void Session_ConnectionDropped(object sender, EventArgs e)
{
// Another client disconnected from the session.
}
Sobald Sie eine Verbindung zu einer Sitzung hergestellt haben, wird die on_connection_created Callback-Funktion des otc_session_callbacks struct wird aufgerufen, wenn ein neuer Client (ein anderer als Ihr eigener) eine Verbindung zur Sitzung herstellt. Die connection Parameter dieser Funktion ist ein Zeiger auf eine Instanz einer otc_connection struct, die dem Client entspricht, der sich mit der Sitzung verbindet.
Die on_connection_dropped Callback-Funktion des otc_session_callbacks struct wird aufgerufen, wenn ein Client (ein anderer als Ihr eigener) die Verbindung zur Sitzung trennt. Die connection Parameter dieser Funktion ist ein Zeiger auf den otc_connection Struktur, die dem Client entspricht, der die Verbindung zur Sitzung trennt.
Erkennen, wenn Sie die Verbindung unterbrochen haben
Sie richten eine EventListner um eine Funktion auszuführen, wenn die Verbindung eines Benutzers zu einer Sitzung unterbrochen wird.
Beispielsweise kann die Funktion den Benutzer benachrichtigen, wenn er die Verbindung verliert und nicht mehr mit der Sitzung verbunden ist.
Wenn Ihr Client die Verbindung zu einer Sitzung trennt, wird die OTSession Komponente versendet eine sessionDisconnected Veranstaltung:
Wenn Ihr Client die Verbindung zu einer Sitzung trennt, sendet das Sitzungsobjekt eine sessionDisconnected Veranstaltung:
Die reason des Ereignisses ist eine Zeichenfolge, die beschreibt, warum die Sitzung unterbrochen wurde. Im vorigen Beispiel wird der Benutzer beispielsweise benachrichtigt, wenn die Verbindung aufgrund der Beendigung der Netzwerkverbindung unterbrochen wurde.
Für weitere Informationen siehe SessionDisconnectEvent.
Automatische Wiedereinschaltung
Die Clients versuchen, sich automatisch wieder mit einer Sitzung zu verbinden, deren Verbindung unerwartet unterbrochen wurde (z. B. aufgrund eines Verbindungsabbruchs im Netzwerk).
Sie müssen keinen Code hinzufügen, um die Clients automatisch wieder zu verbinden, es sei denn, Sie möchten auf Ereignisse reagieren, die gesendet werden, wenn Ihr Client die Verbindung trennt und wieder aufbaut.
Die Clients versuchen, sich automatisch wieder mit einer Sitzung zu verbinden, wenn die Verbindung unerwartet unterbrochen wird (z. B. aufgrund einer Unterbrechung der Netzwerkverbindung). Sie brauchen keinen Code hinzuzufügen, damit die Clients die Verbindung automatisch wiederherstellen, es sei denn, Sie möchten auf Ereignisse reagieren, die beim Trennen und Wiederherstellen der Verbindung Ihres Clients ausgelöst werden.
Wenn die Verbindung unterbrochen wird und der Client versucht, die Verbindung wiederherzustellen, wird die OTSession Objekt sendet eine sessionReconnecting Ereignis. Wenn die Verbindung wiederhergestellt ist, wird die Session Objekt sendet eine sessionReconnected. Wenn der Client die Verbindung nicht wiederherstellen kann, trennt der Client die Verbindung zur Sitzung, und das Sitzungsobjekt sendet die sessionDisconnected.
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:
Wenn Ihr Client die Verbindung zu einer Sitzung vorübergehend unterbricht, senden die Subscriber-Objekte in Clients, die einen von Ihnen veröffentlichten Stream abonnieren, Ereignisse, wenn Ihr veröffentlichter Stream unterbrochen wird und wenn (und falls) er automatisch wieder aufgenommen wird. Für weitere Informationen siehe Automatische Wiedereinschaltung.
Beispielcode, der die Verwendung dieser Ereignisse demonstriert, finden Sie in der openok-reconnection Repo auf GitHub.
Wenn die Verbindung unterbrochen wird und der Client versucht, die Verbindung wieder herzustellen, sendet das Session-Objekt eine reconnecting Ereignis. Wenn die Verbindung wiederhergestellt ist, sendet das Session-Objekt ein reconnected Ereignis. Wenn der Client die Verbindung nicht wiederherstellen kann, trennt er die Verbindung zur Sitzung, und das Sitzungsobjekt sendet das Ereignis sessionDisconnected Veranstaltung.
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:
Wenn Ihr Client die Verbindung zu einer Sitzung vorübergehend unterbricht, senden die Subscriber-Objekte in Clients, die einen von Ihnen veröffentlichten Stream abonnieren, Ereignisse, wenn Ihr veröffentlichter Stream unterbrochen wird und wenn (und falls) er automatisch wieder aufgenommen wird.
Weitere Informationen finden Sie unter Automatische Wiedereinschaltung in der Entwickleranleitung "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 retryAfterReconnect Eigenschaft zu false in den Optionen, die Sie in der Session.signal() Methode, um zu verhindern, dass Signale in die Warteschlange gestellt werden, während Sie nicht verbunden sind.
Weitere Informationen finden Sie unter Verhindern des Sendens von Signalen während der automatischen Wiederherstellung der Verbindung.
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.
Wenn der Client die Verbindung nicht wiederherstellen kann, trennt der Client die Verbindung zur Vonage Video-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:
Wenn Ihr Client die Verbindung zu einer Sitzung vorübergehend unterbricht, werden Methoden in den Implementierungen der Schnittstelle SubscriberKit.StreamListener in Clients, die einen von Ihnen veröffentlichten Stream abonnieren, aufgerufen, wenn Ihr veröffentlichter Stream unterbrochen wird und wenn (und falls) er automatisch wieder aufgenommen wird.
Weitere Informationen finden Sie in der Erkennung, wenn Streams eine Sitzung verlassen und Wiederverbindung Schritt im Streams abonnieren Tutorium.
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.
Weitere Informationen finden Sie unter Verhindern des Sendens von Signalen während der automatischen Wiederherstellung der Verbindung.
Wenn die Verbindung unterbrochen wird und der Client versucht, die Verbindung wiederherzustellen, wird die OTSessionDelegate sessionDidBeginReconnecting(_:) Nachricht an den Delegierten des OTSession-Objekts gesendet. Wenn die Verbindung wiederhergestellt ist, wird die OTSessionDelegate sessionDidReconnect(_:) Nachricht gesendet wird. Wenn der Client die Verbindung nicht wiederherstellen kann, wird die OTSessionDelegate sessionDidDisconnect(_:) Nachricht gesendet 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.
Wenn Ihr Client vorübergehend die Verbindung zu einer Sitzung unterbricht, senden die OKSubscriberKitDelegate-Objekte in Clients, die einen von Ihnen veröffentlichten Stream abonnieren, Nachrichten, wenn Ihr veröffentlichter Stream unterbrochen wird und wenn (und falls) er automatisch wieder aufgenommen wird.
Weitere Informationen finden Sie in der Erkennung, wenn Streams eine Sitzung verlassen und Wiederverbindung Schritt im Streams abonnieren Tutorium.
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 OTSession signal(withType: string:connection:retryAfterReconnect:error:) Methode, um zu verhindern, dass Signale in die Warteschlange gestellt werden, während Sie nicht verbunden sind.
Weitere Informationen finden Sie unter Tutorial zum Thema Signalisierung.
Wenn die Verbindung unterbrochen wird und der Client versucht, die Verbindung wiederherzustellen, wird die [OTSessionDelegate sessionDidBeginReconnecting:] Nachricht an den Delegierten des OTSession-Objekts gesendet. Wenn die Verbindung wiederhergestellt ist, wird die [OTSessionDelegate sessionDidReconnect:] Nachricht gesendet wird. Wenn der Client die Verbindung nicht wiederherstellen kann, wird die [OTSessionDelegate sessionDidDisconnect:] Nachricht gesendet 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.
Wenn Ihr Client vorübergehend die Verbindung zu einer Sitzung unterbricht, senden die OKSubscriberKitDelegate-Objekte in Clients, die einen von Ihnen veröffentlichten Stream abonnieren, Nachrichten, wenn Ihr veröffentlichter Stream unterbrochen wird und wenn (und falls) er automatisch wieder aufgenommen wird. Für weitere Informationen, siehe die Erkennung, wenn Streams eine Sitzung verlassen und Wiederverbindung Schritt im Streams abonnieren Tutorium.
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 [OTSession signalWithType:string:connection:retryAfterReconnect:error:] Methode, 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.
Wenn die Verbindung unterbrochen wird und der Client versucht, die Verbindung wiederherzustellen, wird die Session.ReconnectionStart Ereignis gesendet wird. Wenn die Verbindung wiederhergestellt ist, wird das Session.ReconnectionSuccess Ereignis gesendet wird. Wenn der Client die Verbindung nicht wiederherstellen kann, trennt der Client die Verbindung zur Vonage Video-Sitzung, und die Session.Disconnected Ereignis gesendet 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:
session.ReconnectionStart = Session_ReconnectionStart;
session.ReconnectionSuccess = Session_ReconnectionSuccess;
session.Disconnected = Session_Disconnected;
private void Session_ReconnectionStart(object sender, EventArgs e)
{
// Display a user interface notification.
}
private void Session_ReconnectionSuccess(object sender, EventArgs e)
{
// Adjust user interface.
}
private void Session_Disconnected(object sender, EventArgs e)
{
// Adjust user interface.
}
Wenn Ihr Client die Verbindung zu einer Sitzung vorübergehend unterbricht, senden Subscriber-Objekte in Clients, die den Stream abonniert haben Subscriber.StreamDisconnected und Subscriber.StreamDisconnected Ereignisse, wenn Ihr veröffentlichter Stream abbricht und wann (und ob) er automatisch fortgesetzt wird. Weitere Informationen finden Sie in der Erkennung, wenn Streams eine Sitzung verlassen und Wiederverbindung Schritt im Streams abonnieren Tutorium.
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(type, signal, connection, 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.
Wenn die Verbindung unterbrochen wird und der Client versucht, die Verbindung wiederherzustellen, wird die on_reconnection_started Callback-Funktion des otc_session_callbacks Struktur aufgerufen wird. Wenn die Verbindung wiederhergestellt ist, wird die on_reconnected Callback-Funktion des otc_session_callbacks Struktur aufgerufen wird.
Wenn der Client die Verbindung nicht wiederherstellen kann, trennt der Client die Verbindung zur OpenTok-Sitzung, und die on_disconnected Callback-Funktion des otc_session_callbacks Struktur 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.
Wenn ein anderer Client vorübergehend die Verbindung zu einer Sitzung unterbricht, wird die on_disconnected Callback-Funktion des otc_subscriber_callbacks struct für einen Abonnenten eines von diesem Client veröffentlichten Streams aufgerufen wird. Die on_reconnected Callback-Funktion des otc_subscriber_callbacks struct für den Abonnenten wird aufgerufen, wenn (und falls) der Client die Verbindung wieder aufnimmt und der Stream automatisch fortgesetzt wird.
Weitere Informationen finden Sie in der Erkennung, wenn Streams eine Sitzung verlassen und Wiederverbindung Schritt im Streams abonnieren Tutorium.
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.
Um zu verhindern, dass Signale in die Warteschlange gestellt werden, während Sie nicht verbunden sind, können Sie die Funktion otc_session_send_signal_with_options() Funktion oder die otc_session_send_signal_to_connection_with_options () Funktion und setzen Sie die retryAfterReconnect Mitglied zu false im otc_signal_options die Sie an die Funktion übergeben.
Weitere Informationen finden Sie unter Verhindern des Sendens von Signalen während der automatischen Wiederherstellung der Verbindung.
Fehlerbehebung bei Sitzungsverbindungsproblemen (JavaScript)
Die Session.connect() Methode hat eine Callback-Funktion, der eine optionale error Parameter. Wenn dieser Parameter vorhanden und definiert ist (nicht null oder undefiniert), dann gab es einen Fehler beim Verbindungsaufbau. Wenn Sie in Ihrem Code nach diesem Fehler suchen, können Sie herausfinden, warum der Endbenutzer keine Verbindung herstellen konnte:
Viele Fehler, die bei Verbindungsversuchen auftreten, sind auf ungültige oder abgelaufene Token zurückzuführen.
Ein weiterer häufiger Grund für das Scheitern der Verbindung zu einer Sitzung ist die Internetverbindung des Endbenutzers. Beispiele hierfür sind:
- Der Endnutzer hat seine Internetverbindung verloren
- Der Endbenutzer hat gemeinsame Ports blockiert, weil er sich in einem restriktiven Netzwerk befindet.
Dies führt zu einem Fehler mit dem Code 1006. Wir empfehlen Ihnen, dies mit dem unten stehenden Code zu behandeln. Andere Gründe für das Scheitern der Verbindung zu einer Sitzung können sein, dass die Vonage-Videoserver ausgefallen sind oder dass ein unerwarteter Fehler aufgetreten ist (z. B. ein 500-Level-Fehler auf dem Server). Obwohl dies nicht oft vorkommt, ist es gute Praxis, diese Fehler zu behandeln.
Wenn Sie diese Anweisungen befolgen, sollte Ihr Fehlerbehandlungscode etwa so aussehen:
Sie können die Verbindung verlieren, nachdem Sie bereits erfolgreich mit einer Sitzung verbunden waren. Sie können diesen Fall behandeln, indem Sie auf die sessionDisconnected Ereignis mit dem Grund "networkDisconnected":
Fehlerbehebung bei Sitzungsverbindungsproblemen (React Native)
Viele Fehler, die bei Verbindungsversuchen auftreten, sind auf ungültige oder abgelaufene Token zurückzuführen. Stellen Sie sicher, dass Sie die bewährten Praktiken für Token befolgen, die wie folgt beschrieben sind hier.
Ein weiterer häufiger Grund für das Scheitern der Verbindung zu einer Sitzung ist die Internetverbindung des Endbenutzers. Beispiele hierfür sind:
- Der Endnutzer hat seine Internetverbindung verloren
- Der Endbenutzer hat gemeinsame Ports blockiert, weil er sich in einem restriktiven Netzwerk befindet.