直接将您的浏览器连接到楼宇控制器 -- 无需插件、Java 小程序或中间件困扰。
Sandstar Web Socket 在 Web 应用程序和基于 Sedona 的楼宇自动化控制器之间提供实时、双向通信。打开浏览器标签页,连接到设备,开始读取传感器数值、写入设定值和监控变化 -- 一切都在实时进行。
作为原生 SkySpark 扩展构建,它可以直接集成到现有基础设施中。无需维护额外服务器,无需照管独立进程。只需安装 pod,Web 应用就能即时与 Sedona 设备通信。
存在的原因
传统上,将 Web 浏览器连接到 Sedona 控制器需要一个充当翻译器的独立 Kotlin/Java 微服务。这意味着需要管理另一个进程、处理 Java FFI 问题,以及在两个运行时环境中调试。Sandstar Web Socket 通过单个在 SkySpark 内部运行的原生 Fantom 实现消除了所有这些问题。
适用于谁
- 楼宇自动化集成商 需要针对 Sedona 设备的基于 Web 的工具
- SkySpark 开发人员 为设备交互构建自定义 Web 界面
- 系统管理员 希望在自动化堆栈中减少活动部件
连接仪表板
每个设备,一目了然
查看每个连接的控制器、活跃浏览器会话和流经系统的消息 -- 实时进行。状态端点提供即时诊断,无需查看日志文件。
连接计数、每设备会话状态、DASP 套接字健康和监视管理器统计信息均可在 /live/soxstatus 获取。将其集成到监控堆栈或从浏览器检查。
实时数据流
浏览器到设备,一步之遥
您的浏览器向端口 7070 打开 WebSocket。服务器将 JSON 消息转换为 SOX 协议命令并通过 DASP/UDP 发送到 Sedona 控制器。响应沿同一路径返回 -- 无轮询、无延迟。
多个浏览器标签页自动共享同一设备会话。消息路由器处理 17 种 SOX 命令类型 -- 读取、写入、订阅、文件传输、组件管理等 -- 全部通过单个 WebSocket 连接。
会话管理
智能池,零连接错误
Sedona 控制器支持最多 2 个并发连接。会话池与其限制相反,为每个设备共享单个连接,在所有浏览器客户端间使用。在同一控制器上打开五个标签页 -- 它们都共享一个会话。
如果连接断开,自动恢复会以指数退避方式启动。空闲会话在 5 分钟后清理,30 秒的停留超时可防止快速连接/断开循环导致的连接抖动。您的用户永远不会看到连接错误。
实时值监控
实时监视值变化
订阅 Sedona 控制器上的任何组件并实时查看其值更新。监视系统按浏览器标签页分组订阅,因此每个页面只获取它需要的数据 -- 并在您关闭标签页时自动清理。
事件被批处理以提高效率并通过同一 WebSocket 连接交付。后台清理每 10 秒运行一次以捕捉来自断开连接的客户端的陈旧监视。如果标签页在 30 秒内停止 ping,其订阅将自动从设备中取消订阅。
多个监视可以在同一组件上重叠 -- 系统跟踪引用计数,只在最后一个监视程序离开时从设备中取消订阅。无重复订阅,无孤立监视。
文件传输
上传固件,下载配置
使用分块、可恢复传输将应用程序文件 (SAX、SAB) 传输到 Sedona 控制器或从中传输。三阶段协议 -- 打开、分块、关闭 -- 提供内置的进度跟踪和错误恢复。
每个设备的文件锁防止并发传输损坏数据。每个传输都获得唯一 ID,不活跃 5 分钟后自动清理已放弃的传输。上传新应用、下载备份或在设备上重命名文件 -- 全部通过同一 API。
技术栈
架构
功能特性
- WebSocket 服务器 在可配置端口(默认 7070)上支持并发浏览器连接
- 完整 SOX 协议 通过 DASP/UDP 实现
- 会话池 -- 每个 Sedona 设备最多 2 个会话(硬件限制),在客户端间共享
- 分块文件传输 带进度跟踪,用于 SAX/SAB 上传
- 监视/订阅 系统,用于实时值监控的批处理事件交付
- 组件缓存 用于快速读取,无需每次都访问设备
- SkySpark 服务 带 Axon 函数库,用于状态和诊断
需求
- SkySpark 3.0+ 带 Fantom 运行时
- 网络上 Sedona 兼容的控制器
- bassgCommon 3.0+ 共享库