Signalisation — Windows

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, appelez la fonction Session.SendSignal(type, data, connection, retryAfterReconnect) de l'objet Session :

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

Les type Le paramètre est une chaîne de caractères que les clients peuvent utiliser comme critère de filtrage lorsque être à l'écoute des signaux. Définissez cette valeur sur une chaîne vide si vous n'avez pas besoin de spécifier un type.

Les data 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 objet `Connection` correspondant à un client connecté à la session à laquelle vous souhaitez envoyer un signal. Vous obtenez des références aux objets `Connection` dans le Connection de la propriété ConnectionEventArgs objet utilisé par le ConnectionCreated événement envoyé par l'objet Session.

Les retryAfterReconnect Ce paramètre est facultatif ; il permet de déterminer si le signal sera envoyé après une reconnexion automatique. Voir Empêcher l'envoi de signaux lors d'une reconnexion automatique.

Envoi d'un signal à tous les clients d'une session

Pour envoyer un signal à tous les clients d'une session, appelez la fonction Session.SendSignal() méthode et laisser le connection paramètre non défini (la valeur par défaut est null) :

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

Le premier paramètre, type, est une chaîne de caractères que les clients peuvent utiliser comme critère de filtrage lorsque être à l'écoute des signaux. Définissez cette valeur sur une chaîne vide si vous n'avez pas besoin de spécifier un type.

Le deuxième paramètre, signal, 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.

Réception de signaux au cours d'une session

Pour commencer à recevoir des signaux, ajoutez un délégué pour le Signal de l'objet Session :

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);
}

La méthode déléguée est appelée lorsqu'un signal est reçu dans la session.

Vous pouvez vérifier si le signal a bien été reçu par votre client en comparant le .

@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
    }
}

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 Connection La propriété de l'objet SignalEventArgs est définie sur 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 configurer le retryAfterReconnect) du paramètre Session.SendSignal() à la méthode false 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.