Signalisierung — React Native
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, setzen Sie die signal
prop der OTSession-Komponente und legen Sie die to Eigenschaft der signal Einwand gegen die Verbindungs-ID:
<OTSession
signal={{
to: 'connection-id',
data: 'hello',
}}
/>
Die to Die Eigenschaft ist eine Verbindungs-ID für einen Client, der mit der Sitzung verbunden ist, an die Sie ein Signal senden möchten. Die Verbindungs-IDs der Clients erhalten Sie, wenn das OTSession-Objekt connectionCreated Veranstaltungen.
Die data Eigenschaft der signal „prop“ ist die Datenzeichenfolge, die Sie mit der Nachricht senden. Diese Eigenschaft ist optional. Wenn Sie sie weglassen, wird die Nachricht ohne Dateninhalt gesendet. Die maximale Datengröße beträgt 8 KB.
Außerdem kannst du einen type Eigenschaft des Signals. Hierbei handelt es sich um einen Zeichenfolgenwert, nach dem Clients filtern können, wenn auf Signale achten:
<OTSession
signal={{
to: 'connection-id',
data: 'hello',
type: 'textMessage',
}}
/>
Die maximale Länge der type string ist 128 Byte groß und darf nur Buchstaben (A-Z und a-z), Numbers (0-9), '-', '_' und '~' enthalten.
Ein Signal an alle Clients in einer Sitzung senden
Um ein Signal an einen bestimmten Client in einer Sitzung zu senden, setzen Sie die signal
prop der OTSession-Komponente, aber nicht setzen die to Eigenschaft der signal Einwand gegen die Verbindungs-ID:
<OTSession
signal={{
data: 'hello',
}}
/>
Weitere Informationen zu den anderen Optionen, die Sie an die signal Requisite, siehe der vorherige Abschnitt.
Wird diese Methode aufgerufen, ohne die Gruppe der Empfänger-Clients einzuschränken, werden mehrere Signale gesendet (jeweils eines an jeden Client in der Sitzung).
Empfang von Signalen in einer Sitzung
Um alle in einer Sitzung gesendeten Signale zu empfangen, fügen Sie einen Ereignis-Handler für das signal Ereignis, das von der OTSession-Komponente ausgelöst wird:
<OTSession
apiKey="your-api-key"
sessionId="your-session-id"
token="your-session-token"
eventHandlers={{
signal: event => {
console.log('signal received from connection ID:', event.connectionId);
console.log('signal data:', event.data);
console.log('signal type:', event.type);
},
}}
>
{ /* ... */ }
</OTSession>
Sie können auch nur nach Signalen suchen, die einem bestimmten Typ zugeordnet sind. (Optional können Sie den Typ eines Signals festlegen, wenn Sie ein Signal senden.) Einen Ereignis-Handler für das signal:type Ereignis, wobei „type“ durch die Typ-Zeichenkette ersetzt wird. Das folgende Beispiel überwacht beispielsweise Signale vom Typ „foo“:
<OTSession
apiKey="your-api-key"
sessionId="your-session-id"
token="your-session-token"
eventHandlers={{
'signal:foo': event => {
console.log('foo signal received from connection ID:', event.connectionId);
console.log('signal data:', event.data);
},
}}
>
{ /* ... */ }
</OTSession>
Sie können die connectionId Eigenschaft des Ereignisobjekts mit der connectionId Eigenschaft der sessionConnected Ereignis, das vom Session-Objekt ausgelöst wird, um festzustellen, ob das Signal von Ihrem Client oder einem anderen gesendet wurde.
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 connectionId Eigenschaft des Ereignisobjekts wird auf null.