Zum Hauptinhalt springen

Sitzungen

Was ist eine Sitzung?​

Eine Sitzung wird automatisch erstellt, wenn sich ein WebSocket-Client mit Port 10001 verbindet. Eine Verbindung entspricht einer Sitzung. Wenn die Verbindung geschlossen wird, wird die Sitzung beendet und ihre Konfiguration verworfen.

Jede Sitzung umfasst:

  • Eine numerische ID (vom Dienst automatisch vergeben)
  • Optional einen Profilnamen (den legen Sie fest)
  • Eine eigene Ansicht für jedes Gerät: Basis, Montage, Voreinstellung, Filter und Workspace-Transformation

Es können mehrere Sitzungen gleichzeitig bestehen, z. B. Ihre Unity-App in einer Sitzung und „ Haply -Hub“, das das Gerät in einer anderen Sitzung überwacht. Beide sehen dasselbe physische Gerät, jedoch jeweils mit eigenen Koordinateneinstellungen.

Profilnamen festlegen​

Es wird dringend empfohlen, in Ihrer ersten Nachricht einen Profilnamen festzulegen:

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

Warum das wichtig ist:

  • Haply Hub verwendet den Profilnamen, um Ihre Simulation zu erkennen, und ermöglicht es Ihnen, Geräteeinstellungen (Arbeitsbereich, Basis, Baugruppe, Filter) über dessen Benutzeroberfläche anzupassen.
  • Diese Anpassungen werden dauerhaft gespeichert – beim nächsten Start derselben App wendet Hub sie automatisch erneut an, ohne dass Sie Ihren Code ändern müssen.
  • Andere Sitzungen (oder HTTP-Clients) können Ihre Sitzung über den Profilnamen ansprechen, indem sie einen Sitzungsauswahl verwenden: ?session=myapp:0. Profil-Selektoren akzeptieren außerdem * / ? als Glob-Platzhalter, sodass ein Namensraum wie ?session=co.haply.hub::*:0 funktioniert, ohne dass das vollständige Profil bekannt sein muss.

Fernsteuerung (sitzungsübergreifende Konfiguration)​

Die Geräte einer Sitzung können von außen neu konfiguriert werden – über eine andere WebSocket-Sitzung oder über einen HTTP-Client ganz ohne WebSocket-Verbindung. Auf diese Weise passt Haply Hub die Einstellungen Ihrer App an.

Der HTTP-Client verwendet Sitzungsselektoren, um die richtige Sitzung anzusprechen:

# 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 praktisches Beispiel für die sitzungsübergreifende HTTP-Steuerung finden Sie im HTTP-Tutorial zur Fernkonfiguration.