Zum Haupttext springen

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.