Signalisation — iOS
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
- Envoi d'un signal à tous les clients d'une session
- Réception de signaux au cours d'une session
- Empêcher l'envoi de signaux lors d'une reconnexion automatique
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, appelez la fonction [OTSession signalWithType:data:connection:error:] de l'objet Session :
OTError* error = nil;
[session signalWithType:type string:@"hello" connection:_connection error:&error];
if (error) {
NSLog(@"signal error %@", error);
} else {
NSLog(@"signal sent");
}
Les type Le paramètre est une chaîne de caractères que les clients peuvent utiliser comme critère de filtrage lorsque réception de signaux. Définissez cette valeur sur une chaîne vide si vous n'avez pas besoin de spécifier un type.
Les string Le paramètre correspond à la charge utile (une chaîne de caractères) que vous envoyez avec le message. La taille maximale des données est de 8 Ko.
Les connection Le paramètre est un OTConnection objet correspondant à un client connecté à la session à laquelle vous souhaitez envoyer un signal. Vous obtenez des références aux objets OTConnection dans le [OTSessionDelegate:session:connectionCreated:] message.
Les error Le paramètre « error » prend la valeur d'un objet OTError lorsque l'appel à la méthode échoue. En cas de réussite, le paramètre « error » prend la valeur nil.
Envoi d'un signal à tous les clients d'une session
Pour envoyer un signal à certains clients d'une session, appelez la fonction [OTSession signalWithType:string:connection:error:] de l'objet OTSession :
OTError* error = nil;
[session signalWithType:type string:@"hello" connection:nil error:&error)];
if (error) {
NSLog(@"signal error %@", error);
} else {
NSLog(@"signal sent");
}
Les type Le paramètre est une chaîne de caractères que les clients peuvent utiliser comme critère de filtrage lorsque réception de signaux. Définissez cette valeur sur une chaîne vide si vous n'avez pas besoin de spécifier un type.
Les string Le paramètre correspond à la charge utile (une chaîne de caractères) que vous envoyez avec le message. La taille maximale des données est de 8 Ko.
Les error Le paramètre « error » prend la valeur d'un objet OTError lorsque l'appel à la méthode échoue. En cas de réussite, le paramètre « error » prend la valeur nil.
Réception de signaux au cours d'une session
Lorsqu'un signal est envoyé au cours d'une session, le [OTSessionDelegate session:receivedSignalType:fromConnection:withString:] Le message est envoyé. Le premier paramètre correspond à la chaîne de caractères indiquant le type du signal. Le deuxième paramètre identifie l'expéditeur du signal. Le troisième paramètre correspond à la chaîne de caractères contenant les données du signal.
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 fromConnection est fixé à null.
Empêcher l'envoi de signaux lors d'une reconnexion automatique
Les clients tenteront de se reconnecter automatiquement à une session dont ils se sont déconnectés de manière inattendue (par exemple, en raison d'une interruption de la connexion réseau). Par défaut, tous les signaux que vous envoyez pendant que le client est temporairement déconnecté d'une session sont mis en file d'attente et envoyés lorsque (et si) la reconnexion aboutit. Vous pouvez utiliser la [OTSession signalWithType:string:connection:retryAfterReconnect:error:] et définir la méthode retryAfterReconnect au paramètre NO afin d'éviter que les signaux ne s'accumulent dans la file d'attente lorsque le client est déconnecté. Pour plus d'informations, consultez Reconnexion automatique.