Signalisation — React Native
Utilisez l'API de signalisation OpenTok pour échanger du texte et des données entre les clients connectés à une session OpenTok.
Pour obtenir des informations conceptuelles sur l'API de signalisation OpenTok, consultez le Aperçu de la signalisation guide du développeur.
Cette rubrique comprend les sections suivantes :
Envoi d'un signal à un client spécifique au cours d'une session
Pour envoyer un signal à un client spécifique au cours d'une session, définissez le signal
propriété du composant OTSession et définissez la to de la propriété signal s'opposer à l'identifiant de connexion :
<OTSession
signal={{
to: 'connection-id',
data: 'hello',
}}
/>
Les to La propriété correspond à l'identifiant de connexion d'un client connecté à la session à laquelle vous souhaitez envoyer un signal. Vous obtenez les identifiants de connexion des clients lorsque l'objet OTSession distribue connectionCreated événements.
Les data de la propriété signal « prop » correspond à la chaîne de données que vous envoyez avec le message. Cette propriété est facultative. Si vous ne la spécifiez pas, le message sera envoyé sans données. La taille maximale des données est de 8 Ko.
De plus, vous pouvez passer un type propriété du signal. Il s'agit d'une valeur de type chaîne de caractères que les clients peuvent utiliser comme critère de filtrage lorsqu'ils être à l'écoute des signaux:
<OTSession
signal={{
to: 'connection-id',
data: 'hello',
type: 'textMessage',
}}
/>
La longueur maximale du type est de 128 octets et ne doit contenir que des lettres (A-Z et a-z), des chiffres (0-9), des "-", des "_" et des "~".
Envoi d'un signal à tous les clients d'une session
Pour envoyer un signal à un client spécifique au cours d'une session, définissez le signal
propriété du composant OTSession, mais faites pas fixer le to de la propriété signal s'opposer à l'identifiant de connexion :
<OTSession
signal={{
data: 'hello',
}}
/>
Pour plus de détails sur les autres options que vous transmettez à la fonction signal accessoire, voir la section précédente.
L'appel de cette méthode sans limiter l'ensemble des clients destinataires entraînera l'envoi de plusieurs signaux (un à chaque client de la session).
Réception de signaux au cours d'une session
Pour commencer à recevoir tous les signaux envoyés au cours d'une session, ajoutez un gestionnaire d'événements pour le signal événement, déclenché par le composant OTSession :
<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>
Vous pouvez également n'écouter que les signaux d'un type spécifique. (Vous pouvez, si vous le souhaitez, définir le type d'un signal lorsque vous envoyer un signal.) Enregistrer un gestionnaire d'événements pour le signal:type événement, en remplaçant « type » par la chaîne de caractères correspondant au type. Par exemple, le code suivant écoute les signaux de type « 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>
Vous pouvez comparer les connectionId propriété de l'objet événement avec la connectionId de la propriété sessionConnected événement déclenché par l'objet Session pour vérifier si le signal a été envoyé par votre client ou par un autre.
Notez que vous pouvez utiliser un Appel à l'API REST pour envoyer un signal depuis votre serveur, plutôt que depuis un client connecté à la session. Dans ce cas, le connectionId de l'objet événement est fixée à null.