Aller au contenu principal

Conversation

Qu'est-ce qu'une session ?​

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

Chaque session comprend :

  • un identifiantnumérique (attribué automatiquement par le service)
  • Unnom de configurationfacultatif (à définir par vos soins)
  • Une vue indépendante pour chaque périphérique : repères, montages, préréglages, filtres et transformations de l'espace de travail

Plusieurs sessions peuvent coexister. Par exemple, votre application Unity utilise une session, tandis que Haply Hub observe dans une autre session. Chacune d'entre elles voit le même périphérique physique, mais utilise ses propres paramètres de coordonnées.

Définir le nom de la configuration​

Il est fortement recommandé de définir un nom de configuration dans votre premier message :

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

Pourquoi est-ce important ? :

  • Haply Hub utilise des noms de configuration pouridentifier vos programmes de simulationet vous permet de régler les paramètres des périphériques (espace de travail, référence, montage, filtres) depuis son interface.
  • Ces ajustementsseront enregistrés de manière permanente: lors de la prochaine exécution de la même application, Hub réappliquera automatiquement ces paramètres, sans que vous ayez à modifier quoi que ce soit dans votre code.
  • D'autres sessions (ou clients HTTP) peuvent accéder àSélecteur de session, utilisez un nom de configuration pour désigner votre session, par exemple :?session=myapp:0. Le sélecteur de nom de configuration prend également en charge * / ? caractères génériques, donc par exemple ?session=co.haply.hub::*:0 Ces espaces de noms peuvent être utilisés sans qu'il soit nécessaire de connaître le nom complet de la configuration.

Contrôle à distance (configuration inter-sessions)​

Un périphérique en session peut être reconfigurédepuis l'extérieur, que ce soit par une autre session WebSocket ou par un client HTTP ne disposant d'aucune connexion WebSocket. C'est précisément de cette manière que le Hub «Haply » ajuste les paramètres de votre application.

Les clients HTTP utilisentun sélecteur de sessionpour spécifier la session cible :

# 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 de contrôle HTTP inter-sessions, veuillez consulter le tutoriel sur la configuration à distance HTTP.