Zum Hauptinhalt springen
Version: 3.5.x

Sitzungen

Was ist eine Sitzung?

Eine Sitzung wird automatisch erstellt, wenn ein WebSocket-Client eine Verbindung zum Port 10001 herstellt. 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)
  • Ein optionaler Profilname (den Sie festlegen)
  • Eine eigene Ansicht für jedes Gerät: Basis, Halterung, Voreinstellung, Filter und Arbeitsbereichstransformation

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

Einen Profilnamen festlegen

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

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

Warum das wichtig ist:

  • Haply nutzt den Profilnamen, um Ihre Simulation zu erkennen und Ihnen zu ermöglichen, die Geräteeinstellungen (Arbeitsbereich, Basis, Mount, Filter) über die Benutzeroberfläche anzupassen.
  • Diese Anpassungen werden gespeichert – wenn Sie dieselbe App das nächste Mal starten, wendet Hub sie automatisch erneut an, ohne dass Sie dafür Änderungen am Code vornehmen müssen.
  • Andere Sitzungen (oder HTTP-Clients) können Ihre Sitzung anhand des Profilnamens mithilfe eines Sitzungsauswahl: ?session=myapp:0.

Fernsteuerung (sitzungsübergreifende Konfiguration)

Die Geräte einer Sitzung können von außen neu konfiguriert werden – entweder durch eine andere WebSocket- Sitzung oder durch einen HTTP-Client, der überhaupt keine WebSocket-Verbindung unterhält. Auf diese Weise passtHaply die Einstellungen Ihrer App an.

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

# List all sessions
curl http://localhost:10001/sessions

# 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"}'

Ein ausführliches Beispiel für die sitzungsübergreifende HTTP-Steuerung finden Sie im Remote Config-Tutorial.

Lebenszyklus einer Sitzung

Sitzungen sind kurzlebig – sie bleiben nach einem Neustart des Dienstes nicht erhalten. Der Profilname ermöglicht es Haply , die Einstellungen bei der nächsten Verbindung erneut anzuwenden.