Sitzungen
Was ist eine Sitzung?
Eine Sitzung wird automatisch erstellt, wenn sich ein WebSocket-Client mit dem Port 10001 verbindet. Eine Verbindung entspricht einer Sitzung. Wenn die Verbindung geschlossen wird, wird die Sitzung beendet und ihre Konfiguration gelöscht.
Jede Sitzung umfasst:
- Eine digitale ID (die vom Dienst automatisch vergeben wird)
- Ein optionaler Profilname (den Sie selbst festlegen)
- Die jeweilige Ansicht jedes Geräts: Basis, Montage, Voreinstellung, Filter und Transformation des Arbeitsbereichs
Es können mehrere Sitzungen gleichzeitig bestehen, beispielsweise Ihre Unity-Anwendung in einer Sitzung und „ Haply Hub“, das in einer anderen Sitzung überwacht. Jede Sitzung sieht dasselbe physische Gerät, jedoch mit ihren eigenen Koordinateneinstellungen.
Profilnamen festlegen
Es wird dringend empfohlen, bereits bei 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 Ihnen zu ermöglichen, die Geräteparameter (Arbeitsbereich, Basis, Halterung, Filter) über die Benutzeroberfläche zu ändern.
- Diese Änderungen werden gespeichert: Wenn Sie dieselbe Anwendung das nächste Mal ausführen, wendet Hub sie automatisch erneut an, ohne dass Sie Ihren Code ändern müssen.
- Andere Sitzungen (oder HTTP-Clients) können Ihre Sitzung anhand ihres Profilnamens
mithilfe eines Sitzungsauswahl :
?session=myapp:0. Profilauswähler akzeptieren auch Platzhalterzeichen*/?, sodass ein Namensraum wie?session=co.haply.hub::*:0funktioniert, ohne dass man das vollständige Profil kennen muss.
Fernsteuerung (Konfiguration zwischen den Sitzungen)
Die Geräte einer Sitzung können von außen neu konfiguriert werden, entweder über eine andere WebSocket-Sitzung oder über einen HTTP-Client ohne WebSocket-Verbindung. Auf diese Weise ändert derHaply -Hub die Einstellungen Ihrer Anwendung.
Der HTTP-Client verwendet Sitzungs selektoren, um die richtige Sitzung anzusteuern:
# 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"}'
Lesen Sie das HTTP-Tutorial zur Fernkonfiguration, um ein umfassendes Beispiel für die sitzungsübergreifende HTTP-Steuerung zu erhalten.