An einer Sitzung teilnehmen — Windows

Mit einem Sitzungs-ID und Token, können Sie mithilfe des OpenTok Windows 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-Objekt instanziieren, indem Sie die Methode Session() Konstruktor, wobei Sie den entsprechenden Windows-Anwendungskontext, Ihren OpenTok-API-Schlüssel und eine OpenTok-Sitzungs-ID übergeben:

session = new Session(Context.Instance, API_KEY, SESSION_ID);

Beachten Sie, dass der Aufruf der Session() Konstruktor nicht erstellen. eine OpenTok-Sitzung; dabei wird ein C#-Session-Objekt erstellt, das eine bestehende OpenTok-Sitzung repräsentiert. Sie erstellen eine OpenTok-Sitzung mithilfe der serverseitigen OpenTok-Bibliotheken. Siehe Eine OpenTok-Sitzung erstellen.

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 auftritt, wenn der Client eine Verbindung zur OpenTok-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).

Verbinden mit einer Sitzung

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);
}

Beschreibungen der Werte der Enumeration „OpenTok.ErrorCode“ finden Sie in der Dokumentation zur code Eigenschaft des Fehlerobjekts.

Trennen der Verbindung zu einer Sitzung

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

session.Disconnect();

Erkennen, wenn Sie die Verbindung unterbrochen haben

Die Session.Disconnected Die Nachricht wird gesendet, wenn der Client die Verbindung zur OpenTok-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 Ereignis. Das an das Session.Error Ereignishandler den Grund für den Verbindungsabbruch definieren.

Automatische Wiedereinschaltung

Clients versuchen, automatisch wieder eine Verbindung zu einer Sitzung herzustellen, von der sie unerwartet getrennt wurden (beispielsweise aufgrund einer Unterbrechung der Netzwerkverbindung). Sie müssen keinen zusätzlichen Code hinzufügen, damit die Clients automatisch wieder eine Verbindung herstellen, es sei denn, Sie möchten auf Ereignisse reagieren, die auftreten, wenn Ihr Client die Verbindung verliert und wieder herstellt.

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 wird gesendet. Kann der Client die Verbindung nicht wiederherstellen, trennt er die Verbindung zur OpenTok-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 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(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.

Erkennen, wann andere Clients eine Verbindung hergestellt und getrennt haben

Wenn Sie mit einer Sitzung verbunden sind, wird die Session.ConnectionCreated Dieses Ereignis wird ausgelöst, wenn sich ein neuer Client (außer Ihrem eigenen) mit der Sitzung verbindet. Das an den Ereignis-Listener übergebene `ConnectionEventArgs`-Objekt 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 Dieses Ereignis wird ausgelöst, wenn ein Client (außer Ihrem eigenen) die Sitzung verlässt. Das an den Ereignis-Listener übergebene `ConnectionEventArgs`-Objekt 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.
}