Signalisierung — iOS (Swift)
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
- Ein Signal an alle Clients in einer Sitzung senden
- Empfang von Signalen in einer Sitzung
- Verhindern des Sendens von Signalen während der automatischen Wiederherstellung der Verbindung
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 OTSession signal(withType:string:connection:error:) Methode des Session-Objekts:
var error: OTError?
session.signal(withType: type, string: "hello", connection: connection, error: &error)
if error {
print("signal error \(error)")
} else {
print("signal sent)
}
Die type „parameter“ ist ein Zeichenfolgenwert, nach dem Clients filtern können, wenn Signale empfangen. Setzen Sie diesen Wert auf eine leere Zeichenfolge, wenn Sie keinen Typ festlegen müssen.
Die string Der Parameter ist die Datenlast (eine Zeichenkette), die Sie mit der Nachricht senden. Die maximale Datengröße beträgt 8 KB.
Die connection Der Parameter ist ein OTConnection Objekt, das einem Client entspricht, der mit der Sitzung verbunden ist, an die Sie ein Signal senden möchten. Referenzen auf OTConnection-Objekte erhalten Sie in der OTSessionDelegate session(_:connectionCreated:) Nachricht.
Die error Der Parameter „error“ wird auf ein OTError-Objekt gesetzt, wenn der Aufruf der Methode fehlschlägt. Bei erfolgreichem Abschluss wird der Parameter „error“ auf „nil“ gesetzt.
Ein Signal an alle Clients in einer Sitzung senden
Um ein Signal an bestimmte Clients in einer Sitzung zu senden, rufen Sie die OTSession signal(withType:string:connection:error:) Methode des OTSession-Objekts:
var error: OTError?
session.signal(withType: type, string: "hello", connection: nil, error: &error)
if error {
print("signal error \(error)")
} else {
print("signal sent)
}
Die type „parameter“ ist ein Zeichenfolgenwert, nach dem Clients filtern können, wenn Signale empfangen. Setzen Sie diesen Wert auf eine leere Zeichenfolge, wenn Sie keinen Typ festlegen müssen.
Die string Der Parameter ist die Datenlast (eine Zeichenkette), die Sie mit der Nachricht senden. Die maximale Datengröße beträgt 8 KB.
Die error Der Parameter „error“ wird auf ein OTError-Objekt gesetzt, wenn der Aufruf der Methode fehlschlägt. Bei erfolgreichem Abschluss wird der Parameter „error“ auf „nil“ gesetzt.
Empfang von Signalen in einer Sitzung
Wenn in einer Sitzung ein Signal gesendet wird, wird das OTSessionDelegate session(_:receivedSignalType:from:with:) Die Nachricht wird gesendet. Der erste Parameter ist auf die Typzeichenfolge des Signals gesetzt. Der zweite Parameter identifiziert den Absender des Signals. Der dritte Parameter ist die Datenzeichenfolge des Signals.
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 fromConnection auf den Parameter 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 OTSession signal(withType:string:connection:retryAfterReconnect:error:) Methode und setzen Sie die retryAfterReconnect Parameter zu NO 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.