Rejoindre une session — Windows
En utilisant un ID de la session et jeton, vous pouvez vous connecter à la session OpenTok à l'aide du SDK OpenTok pour Windows.
Cette rubrique comprend les sections suivantes :
- Initialisation d'un objet Session
- Connexion à une session
- Déconnexion d'une session
- Détecter quand vous vous êtes déconnecté d'une session
- Reconnexion automatique
- Détection de la connexion et de la déconnexion d'autres clients
Pour plus d'informations sur la création d'un identifiant de session et d'un jeton d'authentification, consultez Création de la session et Création de jetons.
Initialisation d'un objet Session
Avant de pouvoir vous connecter à une session, vous devez instancier un objet Session en appelant la méthode Session() constructor, en lui transmettant le contexte d'application Windows approprié, votre clé API OpenTok et un identifiant de session OpenTok :
session = new Session(Context.Instance, API_KEY, SESSION_ID);
Notez que l'appel à la fonction Session() n'est pas créer une session OpenTok ; cela crée un objet Session en C#, qui représente une session OpenTok existante. Vous créez une session OpenTok à l'aide des bibliothèques côté serveur d'OpenTok. Voir Création d'une session OpenTok.
Vous voudrez ajouter des gestionnaires pour les événements de base liés à la session :
session.Connected += Session_Connected;
session.Disconnected += Session_Disconnected;
session.Error += Session_Error;
session.ConnectionCreated += Session_ConnectionCreated;
session.StreamReceived += Session_StreamReceived;
session.StreamDropped += Session_StreamDropped;
Vous devrez mettre en œuvre chacune des méthodes de rappel. Par exemple, cette méthode gère ConnectionCreated événement (qui se produit lorsque le client se connecte à la session OpenTok) :
private void Session_Connected(object sender, EventArgs e)
{
Console.WriteLine("Session connected connection id:" + session.Connection.Id);
}
Remarque : La classe Session met en œuvre l'interface System.IDisposable. Veillez à appeler la fonction Dispose() de l'objet Session pour libérer leurs ressources lorsque vous n'avez plus besoin de l'objet (par exemple, lorsque l'application ou la fenêtre se ferme).
Connexion à une session
Appeler le Session.connect(token) en transmettant un jeton OpenTok valide :
session.Connect(TOKEN);
Les Session.Connected est envoyé lorsque le client se connecte à la session OpenTok.
session.ConnectionCreated += Session_ConnectionCreated;
private void Session_Connected(object sender, EventArgs e)
{
Console.WriteLine("Session connected connection id:" + session.Connection.Id);
}
Les Session.Error est envoyé en cas d'erreur de connexion :
session.Error += Session_Error;
private void Session_Error(object sender, Session.ErrorEventArgs e)
{
Console.WriteLine("Session error:" + e.ErrorCode);
}
Consultez la documentation relative à l'énumération OpenTok.ErrorCode pour obtenir la description des valeurs de l' code de l'objet d'erreur.
Déconnexion d'une session
Pour se déconnecter d'une session, appelez le Session.Disconnect() méthode :
session.Disconnect();
Détection de la déconnexion
Les Session.Disconnected Ce message est envoyé lorsque le client se déconnecte de la session OpenTok.
private void Session_Disconnected(object sender, EventArgs e)
{
Console.WriteLine("Session disconnected");
}
Si la connexion à la session est interrompue en raison d'une erreur survenant après une connexion réussie, le message Session.Error est envoyé avant l'événement Session.Disconnected événement. L'objet ErrorEventArgs transmis à la méthode Session.Error définissent la raison pour laquelle la connexion a été interrompue.
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). Vous n'avez pas besoin d'ajouter de code pour que les clients se reconnectent automatiquement, sauf si vous souhaitez réagir aux événements qui se produisent lorsque votre client se déconnecte puis se reconnecte.
Lorsque la connexion est interrompue et que le client tente de se reconnecter, la fonction Session.ReconnectionStart est envoyé. Lorsque la connexion est rétablie, l'événement Session.ReconnectionSuccess l'événement est envoyé. Si le client ne parvient pas à rétablir la connexion, il se déconnecte de la session OpenTok, et le Session.Disconnected est envoyé.
En réponse à ces événements, votre application peut (éventuellement) afficher des notifications d'interface utilisateur indiquant les états de déconnexion temporaire, de reconnexion et de déconnexion :
session.ReconnectionStart = Session_ReconnectionStart;
session.ReconnectionSuccess = Session_ReconnectionSuccess;
session.Disconnected = Session_Disconnected;
private void Session_ReconnectionStart(object sender, EventArgs e)
{
// Display a user interface notification.
}
private void Session_ReconnectionSuccess(object sender, EventArgs e)
{
// Adjust user interface.
}
private void Session_Disconnected(object sender, EventArgs e)
{
// Adjust user interface.
}
Lorsque votre client se déconnecte temporairement d'une session, les objets Subscriber des clients souscrivant au flux envoient des Subscriber.StreamDisconnected et Subscriber.StreamDisconnected lorsque votre flux publié tombe et quand (et si) il reprend automatiquement. Pour plus d'informations, voir la page reconnexion automatique section du guide du développeur intitulée « S'abonner à des flux ».
Par défaut, tous les signaux que vous envoyez lorsque votre client est temporairement déconnecté d'une session sont mis en file d'attente et envoyés lorsque (et si) vous vous reconnectez avec succès. Vous pouvez utiliser la fonction Session.SendSignal(type, signal, connection, retryAfterReconnect) et définir la méthode retryAfterReconnect au paramètre false pour éviter que des signaux soient mis en file d'attente pendant que vous êtes déconnecté. Pour plus d'informations, voir Empêcher l'envoi de signaux lors d'une reconnexion automatique.
Détection de la connexion et de la déconnexion d'autres clients
Lorsque vous êtes connecté à une session, la fenêtre Session.ConnectionCreated Cet événement est déclenché lorsqu'un nouveau client (autre que le vôtre) se connecte à la session. L'objet `ConnectionEventArgs` transmis à l'écouteur d'événements définit la connexion qui a quitté la session :
session.ConnectionCreated += Session_ConnectionCreated;
private void Session_ConnectionCreated(object sender, EventArgs e)
{
// Another client connected to the session.
}
Les Session.ConnectionDropped Cet événement est déclenché lorsqu'un client (autre que le vôtre) quitte la session. L'objet `ConnectionEventArgs` transmis à l'écouteur d'événements définit la connexion qui a quitté la session.
session.ConnectionCreated += Session_ConnectionDropped;
private void Session_ConnectionDropped(object sender, EventArgs e)
{
// Another client disconnected from the session.
}