メインコンテンツへスキップ

会議

セッションとは何ですか?​

WebSocketクライアントがポート10001に接続すると、セッションが自動的に作成されます。1つの接続が1つのセッションに相当します。接続が切断されると、セッションは終了し、その設定は破棄されます。

各セッションには以下の内容が含まれます:

  • 数値ID(サービスによって自動的に割り当てられるもの)
  • 任意でプロフィール名(ご自身で設定してください)
  • 各デバイスに対する独自の視点:基本設定、マウント、プリセット、フィルター、ワークスペース変換

複数のセッションを並行して実行することができます。たとえば、あるセッションでUnityアプリを実行し、別のセッションでHaply Hubがデバイスを監視している場合などです。両セッションとも同じ物理デバイスを認識しますが、それぞれ独自の座標設定が適用されます。

プロフィール名を設定する​

最初のメッセージでプロフィール名を設定することを強くお勧めします:

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

なぜそれが重要なのか:

  • Haply Hubはプロファイル名を使用してシミュレーションを識別し、そのインターフェースを通じてデバイス設定(ワークスペース、ベース、アセンブリ、フィルター)を調整できるようにします。
  • これらの変更は永続的に保存されます。次回同じアプリを起動した際、Hubはコードを変更することなく、自動的にこれらの変更を再度適用します。
  • 他のセッション(またはHTTPクライアント)は、プロファイル名を使用して、 セッションセレクター 使用方法: ?session=myapp:0. プロファイルセレクタは、さらに以下のものを受け入れます * / ? als グローバルプレースホルダーとして、次のような名前空間が ?session=co.haply.hub::*:0 完全なプロファイルがわかっていなくても機能します。

リモート制御(セッションをまたぐ設定)​

セッション内のデバイスは、外部から再設定することができます。別のWebSocketセッションを通じて、あるいはWebSocket接続を一切使用しないHTTPクライアントを通じて行うことも可能です。これにより、Haply Hubはアプリの設定を調整します。

HTTPクライアントは、適切なセッションを特定するためにセッションセレクタを使用します:

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

セッションをまたぐHTTP制御に関する完全な実践例については、リモート設定に関するHTTPチュートリアルをご覧ください。