会话
什么是会话?
当 WebSocket 客户端连接到端口 10001 时,会自动创建一个会话。一个连接 = 一个会话。当连接关闭时,会话将被 销毁,其配置也将被丢弃。
每节课包含:
- 一个数字标识符(由服务自动分配)
- 可选的配置文件名称(由您设置)
- 每个设备的专属视图:基础设置、安装、预设、滤镜和工作区变换
多个会话可以同时存在——例如,一个会话中运行您的 Unity 应用,另一个会话中运行Haply Hub 进行观察。它们各自看到的是同一台物理设备,但各自拥有 独立的坐标设置。
设置个人资料名称
强烈建议您在第一条消息中设置个人资料名称:
{
"session": {
"configure": {
"profile": {
"name": "co.mycompany.myapp:main-scene"
}
}
}
}
为什么这很重要:
- Haply 会根据配置文件名称识别您的仿真,并允许您 通过其用户界面调整设备设置(工作区、基函数、挂载、滤波器)。
- 这些调整会被保存下来——下次运行同一款应用时,Hub 会自动重新应用这些调整,而无需您修改任何代码。
- 其他会话(或 HTTP 客户端)可以使用配置文件名称
来定位您的会话 会话选择器:
?session=myapp:0.
远程控制(跨会话配置)
会话中的设备可以从外部进行重新配置——无论是通过另一个 WebSocket 会话,还是通过完全不使用 WebSocket 连接的 HTTP 客户端。这就是 Haply 调整您应用设置的方式。
HTTP 客户端使用会话选择器来定位 正确的会话:
# 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"}'
请参阅Remote Config 教程,了解跨会话 HTTP 控制的完整 示例。
会话生命周期
会话是短暂的——服务重启后会话将不复存在。配置文件 名称可让Haply 在下次连接时重新应用设置。