跳过至主要内容

会话

什么是会话​

当 WebSocket 客户端连接到 10001 端口时,系统会自动创建会话。每个连接对应一个会话。当连接关闭时,会话将被销毁,其配置也会随之销毁。

各场次的内容包括:

  • 数值ID(由服务自动分配)
  • 任意配置文件名称(由您自行设置)
  • 针对所有设备的独特视图:基准、安装、预设、滤镜以及工作区的变换

可以同时存在多个会话。例如,可以在一个会话中运行 Unity 应用,同时在另一个会话中监视《Haply 》Hub。虽然它们都指向同一台物理设备,但各自拥有独立的坐标设置。

配置配置文件名称​

强烈建议您在第一条消息中设置个人资料名称:

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

重要原因:

  • Haply Hub会通过配置文件名称识别模拟,并允许用户通过其用户界面调整设备设置(工作区、基准、安装方式、滤镜)。
  • 这些调整将被永久保存。下次运行同一应用时,Hub 会自动重新应用这些调整,而无需修改代码。
  • 其他会话(或 HTTP 客户端)会,会话选择器 您可以使用以下方式通过配置文件名称指定当前会话:?session=myapp:0。配置文件选择器是 * 和 ? 由于也接受GlobWild卡,因此,?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 远程配置教程》。