跳到主要内容

STRHUB -- 实时数据流转发工具

适用版本RTKHUB v1.2.x 工具链,STRHUB 可独立运行,也可作为 RTKHUB 数据流能力使用。
推荐下一步先用配置文件启动,再通过 Web 页面新增、启停和保存流任务。

STRHUB 是 RTKHUB 工具链中的实时数据流转发、接收与管理模块,基于 RTKLIB strsvr 构建。它提供多任务流转发能力,支持配置文件批量启动与运行时动态增删改查,并通过独立的 Web 管理页面提供吞吐量监控和任务管理界面。

核心特性

  • 配置批量启动 -- 通过 strhub.conf 配置文件一次性加载所有流任务
  • 动态增删改查 -- 运行时通过 Web 页面或控制台命令动态添加、启动、停止、删除任务
  • 独立 Web 管理页面 -- 浏览器监控页面,支持吞吐量图表和结构化任务创建
  • 凭证脱敏显示 -- NTRIP 用户名/密码在界面上脱敏显示,不直接暴露
当前状态

STRHUB 已内置在 RTKHUB 中。使用 RTKHUB 时,STRHUB 作为 RTKHUB 的一部分提供数据流转发能力。

启动参数

.\strhub.exe -k strhub.conf -log 3
参数说明
-k <file>流任务配置文件路径(默认 strhub.conf
-log <lvl>RTKLIB 跟踪级别
提示

配置文件 strhub.conf 中定义了所有需要批量启动的流任务。启动时 STRHUB 会读取该文件并自动创建所有任务。

控制台命令

STRHUB 提供交互式控制台,支持以下命令:

命令说明
list列出所有任务
list run列出运行中的任务
list stop列出已停止的任务
monitor监控所有任务状态
monitor <id>监控指定任务的详细信息
add <args>添加新任务(使用 str2str 参数格式)
stop <id>停止指定任务
start <id>启动指定任务
del <id> / rm <id>删除指定任务
save保存当前配置到文件
quit / exit退出控制台

任务参数格式

add 命令使用与 RTKLIB str2str 相同的参数格式:

-in <输入参数> -out <输出参数>

NTRIP 客户端示例:

-add -in ntrip://user:password@host:2101/MOUNT -out file://./data.rtcm
信息

CLI 保持 add <args> 这种通用 str2str 参数形式。如果需要按类型填写 NTRIP/TCP/UDP/File/Serial 等参数,建议使用 Web 管理页的"新增任务"弹窗,它会自动生成等效的 -in ... -out ... 参数。

Web 管理页面

访问地址: http://127.0.0.1:5427/

STRHUB Web 管理页面提供结构化的任务管理功能:

  • 支持选择输入/输出类型:NTRIP Client、NTRIP Server、NTRIP Caster、TCP Client/Server、UDP Client/Server、Serial、File、FTP、HTTP 等
  • 页面自动生成底层 -in ... -out ... 参数
  • NTRIP Client 支持从 caster sourcetable 获取挂载点列表
  • 吞吐量图表实时展示数据流量

API 端点

基础地址: http://127.0.0.1:5427/

方法端点说明
GET/api/status查询所有任务状态
GET/api/add?cmd=<args>添加新任务
GET/api/start?id=<id>启动任务
GET/api/stop?id=<id>停止任务
GET/api/del?id=<id>删除任务
GET/api/save保存当前配置到文件
GET/api/ntrip/mountpoints?host=<host>&port=2101&user=<user>&password=<password>从 NTRIP caster sourcetable 获取挂载点列表

API 使用示例

查询所有任务状态:

const response = await fetch("http://127.0.0.1:5427/api/status");
const tasks = await response.json();
console.log(tasks);

添加 NTRIP 客户端任务:

const args = encodeURIComponent("-in ntrip://user:pass@host:2101/MOUNT -out file://./data.rtcm");
const response = await fetch(`http://127.0.0.1:5427/api/add?cmd=${args}`);

获取 NTRIP 挂载点列表:

const response = await fetch(
"http://127.0.0.1:5427/api/ntrip/mountpoints?host=caster.example.com&port=2101&user=admin&password=secret"
);
const mountpoints = await response.json();

凭证脱敏

STRHUB 对 NTRIP 用户名和密码实施脱敏处理:

  • 在 Web 管理页面的任务列表中,NTRIP 凭证以脱敏形式显示,不直接暴露原始值
  • API 返回的任务状态中,敏感字段同样经过脱敏处理
  • 控制台和保存前的任务展示也会使用脱敏后的 stream path
  • 编辑任务时需要重新填写凭证
注意

凭证脱敏不等于密钥管理。strhub.conf 等配置文件仍可能保存真实 NTRIP 凭证,部署时请确保通过 HTTPS、内网、VPN 或 Cloudflare Tunnel 访问 STRHUB 管理接口,并限制配置文件访问权限。

与 RTKHUB 的关系

RTKHUB 负责 GNSS/RTK 解算与控制台监控;STRHUB 负责数据流接入、转发、接收和链路管理。当前版本中,STRHUB 以内置模块形式服务于 RTKHUB,但保留独立的 Web 管理页面(端口 5427)和 API 接口。