Aller directement au corps du texte

session

Qu'est-ce qu'une session ?​

Une sessionest créée automatiquement dès qu'un client WebSocket se connecte au port 10001. Chaque connexion correspond à une session. Lorsque la connexion est fermée, la session est supprimée et sa configuration est également effacée.

Chaque session comprend :

  • Identifiant numérique (attribué automatiquement par le service)
  • Nom de profil facultatif (à définir soi-même)
  • Une vue unique pour chaque appareil : base, montage, préréglage, filtres, conversion d'espace de travail

Plusieurs sessions peuvent coexister. Par exemple, une session peut afficher l'application Unity de l'utilisateur, tandis qu'une autre session affiche Haply Hub. Les deux sessions affichent le même périphérique physique, mais utilisent chacune leur propre système de coordonnées.

Configuration du nom de profil​

Nous vous recommandons vivement de définir un nom de profil dès votre premier message :

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

Raison importante :

  • Haply Hub utilise le nom du profil pour identifier la simulationet permet d'ajuster les paramètres de l'appareil (espace de travail, base, montage, filtres) depuis l'interface utilisateur correspondante.
  • Ces modifications sont enregistrées de manière permanente. La prochaine fois que vous lancerez la même application, Hub les réappliquera automatiquement sans que vous ayez à modifier le code.
  • Une autre session (ou un autre client HTTP) est Sélecteur de sessionVous pouvez définir la session d'un utilisateur à l'aide d'un nom de profil : ?session=myapp:0. Le sélecteur de profil est * / ? Comme il prend également en charge les caractères génériques « * », ?session=co.haply.hub::*:0Ce type de modèle fonctionne sans qu'il soit nécessaire de connaître le nom complet du profil.

Contrôle à distance (configuration entre sessions)​

Les périphériques d'une session peuvent être reconfigurés depuis l'extérieur. Cela peut se faire via une autre session WebSocket ou même via un client HTTP ne disposant d'aucune connexion WebSocket. C'est ainsi que l'Haply Hub ajuste les paramètres de l'application.

Le client HTTP utilise un sélecteur de sessionpour spécifier la session appropriée :

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

# Look up a single session directly (path-form of the selector — same
# expressions as `?session=`, see Selectors for the full grammar)
curl http://localhost:10001/sessions/:myapp:0

# 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"}'

# Same, but target the first session in a namespace (profile wildcard)
curl -X POST "http://localhost:10001/inverse3/0/config/basis?session=co.haply.hub::*:0" \
-H "Content-Type: application/json" \
-d '{"permutation": "XZY"}'

Pour un exemple complet du fonctionnement du contrôle HTTP entre les sessions, veuillez consulter le tutoriel sur HTTP Remote Config.