Signalisierung — Windows

Verwenden Sie die OpenTok-Signalisierungs-API, um Text und Daten zwischen Clients zu übertragen, die mit einer OpenTok-Sitzung verbunden sind.

Konzeptionelle Informationen zur OpenTok-Signalisierungs-API finden Sie in der Überblick über die Signalisierung Leitfaden für Entwickler.

Dieses Thema umfasst die folgenden Abschnitte:

Ein Signal an einen bestimmten Client in einer Sitzung senden

Um ein Signal an einen bestimmten Client in einer Sitzung zu senden, rufen Sie die Funktion Session.SendSignal(type, data, connection, retryAfterReconnect) Methode des Session-Objekts:

Session.SendSignal("chat", "Hello", connection1);

Die type „parameter“ ist ein Zeichenfolgenwert, nach dem Clients filtern können, wenn auf Signale achten. Setzen Sie diesen Wert auf eine leere Zeichenfolge, wenn Sie keinen Typ festlegen müssen.

Die data Der Parameter ist die Datenlast (eine Zeichenkette), die Sie mit der Nachricht senden. Die maximale Datengröße beträgt 8 KB.

Die connection „parameter“ ist ein „Connection“-Objekt, das einem Client entspricht, der mit der Sitzung verbunden ist, an die Sie ein Signal senden möchten. Referenzen auf „Connection“-Objekte erhalten Sie in der Connection Eigenschaft der ConnectionEventArgs Objekt, das von der ConnectionCreated Ereignis, das vom Session-Objekt gesendet wurde.

Die retryAfterReconnect Der Parameter ist ein optionaler Parameter, der festlegt, ob das Signal nach einer automatischen Wiederverbindung gesendet wird. Siehe Verhindern des Sendens von Signalen während der automatischen Wiederherstellung der Verbindung.

Ein Signal an alle Clients in einer Sitzung senden

Um ein Signal an alle Clients in einer Sitzung zu senden, rufen Sie die Funktion Session.SendSignal() Methode und lassen Sie die connection Parameter nicht gesetzt (der Standardwert ist null):

session.SendSignal("chat", "Hello");

Der erste Parameter, type, ist ein Zeichenfolgenwert, nach dem Clients filtern können, wenn auf Signale achten. Setzen Sie diesen Wert auf eine leere Zeichenfolge, wenn Sie keinen Typ festlegen müssen.

Der zweite Parameter, signal, ist die Datenlast (eine Zeichenkette), die Sie mit der Nachricht senden. Die maximale Datengröße beträgt 8 KB.

Empfang von Signalen in einer Sitzung

Um Signale zu empfangen, fügen Sie einen Delegaten für die Signal Methode des Session-Objekts:

session.Signal += Session_Signal;

private void Session_Signal(object sender, SignalEventArgs e)
{
    Console.WriteLine("Session received signal. ");
    Console.WriteLine("Data:" + e.Data);
    Console.WriteLine("Type:" + e.Type);
    Console.WriteLine("From connection with ID:" + e.Connection.Id);
}

Die Delegate-Methode wird aufgerufen, wenn in der Sitzung ein Signal empfangen wird.

Sie können überprüfen, ob das Signal von Ihrem Client empfangen wurde, indem Sie die . vergleichen.

@Override
  private void Session_Signal(object sender, SignalEventArgs e)
  {
    String myConnectionId = session.Connection.ID;
    if (e.Connection != null && e.Connection.ID != myConnectionId) {
        // Signal received from another client
    }
}

Beachte, dass du ein REST-API-Aufruf um ein Signal von Ihrem Server aus zu senden, anstatt von einem mit der Sitzung verbundenen Client. In diesem Fall wird die Connection Die Eigenschaft des SignalEventArgs-Objekts ist auf null.

Verhindern des Sendens von Signalen während der automatischen Wiederherstellung der Verbindung

Clients versuchen, automatisch wieder eine Verbindung zu einer Sitzung herzustellen, von der sie unerwartet getrennt wurden (beispielsweise aufgrund eines Ausfalls der Netzwerkverbindung). Standardmäßig werden alle Signale, die Sie senden, während der Client vorübergehend von einer Sitzung getrennt ist, in eine Warteschlange gestellt und gesendet, sobald (und falls) die Verbindung erfolgreich wiederhergestellt wurde. Sie können die retryAfterReconnect) Parameter des Session.SendSignal() Methode zu false um zu verhindern, dass Signale in die Warteschlange gestellt werden, während die Verbindung zum Client unterbrochen ist. Weitere Informationen finden Sie unter Automatische Wiedereinschaltung.