Séances
Qu'est-ce qu'une séance ?
Une session est créée automatiquement lorsqu'un client WebSocket se connecte au port 10001. Une connexion correspond à une session. Lorsque la connexion est fermée, la session prend fin et sa configuration est supprimée.
Chaque séance comprend :
- Un identifiant numérique (attribué automatiquement par le service)
- Facultatif : un nom de profil (que vous définissez vous-même)
- Une vue spécifique pour chaque appareil : base, montage, préréglage, filtre et transformation de l'espace de travail
Plusieurs sessions peuvent coexister : par exemple, votre application Unity dans une session et l'Haply Hub, qui surveille l'appareil dans une autre session. Les deux voient le même appareil physique, mais chacune avec ses propres paramètres de coordonnées.
Définir un nom de profil
Il est vivement recommandé de définir un nom de profil dans votre premier message :
{
"session": {
"configure": {
"profile": {
"name": "co.mycompany.myapp:main-scene"
}
}
}
}
Pourquoi est-ce important ? :
- Haply Hub utilise le nom du profil pour identifier votre simulation et vous permet de personnaliser les paramètres de l'appareil (espace de travail, base, assemblage, filtres) via son interface.
- Ces modifications sont enregistrées de manière permanente: lors du prochain lancement de cette même application, Hub les appliquera automatiquement à nouveau, sans que vous ayez à modifier votre code.
- D'autres sessions (ou clients HTTP) peuvent accéder à votre session via le nom du profil en utilisant un Sélecteur de session utiliser :
?session=myapp:0. Les sélecteurs de profil acceptent également*/?en tant qu'espace réservé « Glob », de sorte qu'un espace de noms tel que?session=co.haply.hub::*:0fonctionne sans qu'il soit nécessaire de connaître le profil complet.
Commande à distance (configuration valable pour toutes les sessions)
Les appareils d'une session peuvent être reconfigurés depuis l'extérieur, soit via une autre session WebSocket, soit via un client HTTP sans aucune connexion WebSocket. C'est ainsi qu'Haply Hub adapte les paramètres de votre application.
Le client HTTP utilise des sélecteurs de session pour s'adresser à la bonne session :
# 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"}'
Vous trouverez un exemple pratique complet de contrôle HTTP inter-sessions dans le tutoriel HTTP consacré à la configuration à distance.