Sitzung
Was ist eine Sitzung?
Eine Sitzungwird automatisch erstellt, sobald ein WebSocket-Client eine Verbindung zu Port 10001 herstellt. Eine Verbindung entspricht einer Sitzung. Wenn die Verbindung geschlossen wird, wird die Sitzung gelöscht und die zugehörige Konfiguration verworfen.
Jede Sitzung umfasst Folgendes:
- Nummern-ID(wird vom Dienst automatisch vergeben)
- Optionaler Profilname(manuell festzulegen)
- Individuelle Ansichten für alle Geräte: Basis, Mount, Voreinstellung, Filter, Arbeitsbereichs-Umwandlung
Es können mehrere Sitzungen gleichzeitig bestehen. So können Sie beispielsweise in einer Sitzung die Unity-App eines Benutzers und in einer anderen Sitzung den „ Haply Hub“ beobachten. Beide Sitzungen zeigen dasselbe physische Gerät an, verwenden jedoch jeweils eigene Koordinatensysteme.
Profilnamen festlegen
Wir empfehlen Ihnen dringend, in Ihrer ersten Nachricht einen Profilnamen festzulegen:
{
"session": {
"configure": {
"profile": {
"name": "co.mycompany.myapp:main-scene"
}
}
}
}
Wichtiger Grund:
- Haply Hub erkennt Simulationenanhand ihres Profilnamens und ermöglicht es, die Geräteeinstellungen (Arbeitsbereich, Basis, Mount, Filter) über die entsprechende Benutzeroberfläche anzupassen.
- Diese Anpassungen werden dauerhaft gespeichert. Wenn Sie dieselbe App das nächste Mal starten, wendet der Hub sie automatisch erneut an, ohne dass Codeänderungen erforderlich sind.
- Eine andere Sitzung (oder ein anderer HTTP-Client) ist SitzungsauswahlMit können Sie die Sitzung eines Benutzers anhand des Profilnamens festlegen:
?session=myapp:0. Der Profil-Selektor ist*/?Da auch Glob-Wildcards unterstützt werden,?session=co.haply.hub::*:0Solche Muster funktionieren, ohne dass man den vollständigen Profilnamen kennen muss.
Fernsteuerung (Konfiguration zwischen Sitzungen)
Die Geräte einer Sitzung können von außen neu konfiguriert werden. Dies ist sowohl über andere WebSocket-Sitzungen als auch über HTTP-Clients möglich, die gar keine WebSocket-Verbindung haben. Auf diese Weise passt der „ Haply -Hub“ die Einstellungen der App an.
Ein HTTP-Client verwendet einen Session-Selektor, um die richtige Sitzung anzugeben:
# 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"}'
Ein vollständiges Beispiel für die Funktionsweise der HTTP-Steuerung zwischen Sitzungen finden Sie im Tutorial zu HTTP Remote Config.