Skip to main content
Version : 3.5.x

Séances

Qu'est-ce qu'une session ?

Une session est créée automatiquement lorsqu'un client WebSocket se connecte au port 10001. Une connexion = une session. Lorsque la connexion est fermée, la session est supprimée et sa configuration est effacée.

Chaque session comprend :

  • Un identifiant numérique (attribué automatiquement par le service)
  • Un nom de profil facultatif (à définir par vos soins)
  • Une vue spécifique pour chaque appareil : base, support, préréglage, filtres et transformation de l'espace de travail

Plusieurs sessions peuvent coexister — par exemple, votre application Unity dans une session et Haply Hub en mode observation dans une autre. Chacune d'entre elles voit le même appareil physique, mais avec ses propres paramètres de coordonnées.

Définir un nom de profil

Il est vivement recommandé d'indiquer le nom de votre profil dans votre premier message :

{
"session": {
"configure": {
"profile": {
"name": "co.mycompany.myapp:main-scene"
}
}
}
}

Pourquoi c'est important :

  • Haply utilise le nom du profil pour identifier votre simulation et vous permettre de modifier les paramètres de l'appareil (espace de travail, base, montage, filtres) depuis son interface utilisateur.
  • Ces modifications sont enregistrées: la prochaine fois que vous lancerez la même application, Hub les réappliquera automatiquement sans que vous ayez à modifier le code.
  • D'autres sessions (ou clients HTTP) peuvent cibler votre session par nom de profil en utilisant un sélecteur de session: ?session=myapp:0.

Télécommande (configuration inter-sessions)

Les périphériques d'une session peuvent être reconfigurés depuis l'extérieur — par une autre session WebSocket ou par un client HTTP ne disposant d'aucune connexion WebSocket. C'est ainsi que Haply modifie les paramètres de votre application.

Le client HTTP utilise des sélecteurs de session pour cibler la bonne session :

# List all sessions
curl http://localhost:10001/sessions

# Change the basis on session with profile "myapp" (first match)
curl -X POST "http://localhost:10001/inverse3/0/config/basis?session=myapp:0" \
-H "Content-Type: application/json" \
-d '{"permutation": "XZY"}'

Consultez le tutoriel sur Remote Config pour découvrir un exemple complet et détaillé de contrôle HTTP inter-sessions.

Cycle de vie de la session

Les sessions sont éphémères: elles ne sont pas conservées après le redémarrage du service. Le nom du profil permet à Haply de réappliquer les paramètres lors de la prochaine connexion.