Gespräch
Was ist eine Sitzung?
Wenn ein WebSocket-Client eine Verbindung zum Port 10001 herstellt, wird automatischeine Sitzungerstellt. Eine Verbindung entspricht einer Sitzung. Wenn die Verbindung geschlossen wird, wird die Sitzung sofort beendet und ihre Konfiguration verworfen.
Jede Sitzung umfasst:
- Eine numerische ID(die vom Dienst automatisch vergeben wird)
- Ein optionalerKonfigurationsname(von Ihnen festzulegen)
- Die eigenständige Ansicht für jedes Gerät: Referenz, Einbindung, Voreinstellungen, Filter und Arbeitsbereichstransformationen
Es können mehrere Sitzungen gleichzeitig bestehen. Beispielsweise nutzt Ihre Unity-Anwendung eine Sitzung, während „ Haply Hub“ in einer anderen Sitzung die Situation beobachtet. Beide sehen dasselbe physische Gerät, verwenden jedoch jeweils eigene Koordinatensysteme.
Konfigurationsnamen festlegen
Es wird dringend empfohlen, in deiner ersten Nachricht einen Konfigurationsnamen festzulegen:
{
"session": {
"configure": {
"profile": {
"name": "co.mycompany.myapp:main-scene"
}
}
}
}
Warum ist das wichtig:
- Haply Hub verwendet Konfigurationsnamen,um Ihre Simulationsprogramme zu identifizieren, und ermöglicht es Ihnen, die Geräteeinstellungen (Arbeitsbereich, Referenz, Einbindung, Filter) in seiner Benutzeroberfläche anzupassen.
- Diese Anpassungenwerden dauerhaft gespeichert– beim nächsten Ausführen derselben Anwendung wendet der Hub diese Einstellungen automatisch erneut an, ohne dass Sie Änderungen am Code vornehmen müssen.
- Andere Sitzungen (oder HTTP-Clients) können überSitzungsauswahl,Geben Sie Ihrer Sitzung einen Konfigurationsnamen, zum Beispiel:
?session=myapp:0。Der Konfigurationsnamen-Selektor unterstützt außerdem*/?Platzhalter, daher beispielsweise?session=co.haply.hub::*:0Ein solcher Namensraum kann verwendet werden, ohne dass der vollständige Konfigurationsname bekannt sein muss.
Fernsteuerung (sitzungsübergreifende Konfiguration)
Ein Gerät, das an einer Sitzung teilnimmt, kannvon außenneu konfiguriert werden – entweder über eine andere WebSocket-Sitzung oder über einen HTTP-Client, der keine WebSocket-Verbindung unterhält. Der „Haply -Hub“ passt die Einstellungen Ihrer Anwendung genau auf diese Weise an.
HTTP-Clients verwendeneinen Sitzungsselektor, um die Zielsitzung 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 sitzungsübergreifende HTTP-Steuerung finden Sie im Tutorial zur HTTP-Fernkonfiguration.