Add realtime gateway and simulator bridge

This commit is contained in:
2026-03-27 21:06:17 +08:00
parent 0703fd47a2
commit 2c0fd4c549
36 changed files with 6852 additions and 1 deletions

View File

@@ -27,6 +27,122 @@ npm run mock-gps-sim
- 上传轨迹文件回放GPX / KML / GeoJSON
- 路径回放
- 速度、频率、精度调节
- 可选桥接到新实时网关
## 桥接到新网关
旧模拟器现在支持保留原有本地广播链路的同时,把数据旁路转发到新的 Go 实时网关。
默认行为:
- 小程序仍可继续连接 `ws://127.0.0.1:17865/mock-gps`
- 页面里可以直接配置并启用新网关桥接
- 环境变量只作为服务启动时的默认值
### 页面里直接配置
启动模拟器后,打开:
```text
http://127.0.0.1:17865/
```
在“新网关桥接”区域可以直接配置:
- 是否启用桥接
- 网关地址
- Producer Token
- Channel ID
- 目标 Device ID
- Group ID
- Source ID
- Source Mode
- 本地桥接预设
点“应用桥接配置”后立即生效,不需要重启模拟器。
预设说明:
- 预设保存在浏览器本地存储
- 适合多人联调时快速切换 `deviceId / groupId / sourceId`
- “套用预设”只会填入表单,不会自动提交到服务端
- 需要再点一次“应用桥接配置”才会真正切换运行时桥接目标
### PowerShell 启动示例
在仓库根目录执行:
```powershell
$env:MOCK_SIM_GATEWAY_ENABLED='1'
$env:MOCK_SIM_GATEWAY_URL='ws://127.0.0.1:18080/ws'
$env:MOCK_SIM_GATEWAY_TOKEN='dev-producer-token'
$env:MOCK_SIM_GATEWAY_CHANNEL_ID=''
$env:MOCK_SIM_GATEWAY_DEVICE_ID='child-001'
$env:MOCK_SIM_GATEWAY_SOURCE_ID='mock-gps-sim-a'
npm run mock-gps-sim
```
如果你使用新网关管理台创建的 `channel`,则要这样填:
```powershell
$env:MOCK_SIM_GATEWAY_ENABLED='1'
$env:MOCK_SIM_GATEWAY_URL='ws://127.0.0.1:18080/ws'
$env:MOCK_SIM_GATEWAY_TOKEN='<producerToken>'
$env:MOCK_SIM_GATEWAY_CHANNEL_ID='<channelId>'
$env:MOCK_SIM_GATEWAY_DEVICE_ID='child-001'
npm run mock-gps-sim
```
说明:
- 不填 `MOCK_SIM_GATEWAY_CHANNEL_ID` 时,旧模拟器走老的 `authenticate` 模式
- 填了 `MOCK_SIM_GATEWAY_CHANNEL_ID` 时,旧模拟器自动走 `join_channel` 模式
- 管理台里复制出来的 `producerToken` 只能和对应的 `channelId` 配套使用
### 可用环境变量
- `MOCK_SIM_GATEWAY_ENABLED`
- `1` 表示启用桥接
- `MOCK_SIM_GATEWAY_URL`
- 新网关地址,默认 `ws://127.0.0.1:18080/ws`
- `MOCK_SIM_GATEWAY_TOKEN`
- Producer token默认 `dev-producer-token`
- `MOCK_SIM_GATEWAY_CHANNEL_ID`
- 可选 channel id填写后会改走 `join_channel`
- `MOCK_SIM_GATEWAY_DEVICE_ID`
- 转发目标 `deviceId`,默认 `child-001`
- `MOCK_SIM_GATEWAY_GROUP_ID`
- 可选 `groupId`
- `MOCK_SIM_GATEWAY_SOURCE_ID`
- source id默认 `mock-gps-sim`
- `MOCK_SIM_GATEWAY_SOURCE_MODE`
- source mode默认 `mock`
- `MOCK_SIM_GATEWAY_RECONNECT_MS`
- 断线重连间隔,默认 `3000`
### 桥接状态查看
启动后可查看:
```text
http://127.0.0.1:17865/bridge-status
```
桥接配置接口:
```text
http://127.0.0.1:17865/bridge-config
```
返回内容包含:
- 是否启用桥接
- 是否已连上新网关
- 是否已认证
- 最近发送 topic
- 已发送条数
- 丢弃条数
- 最近错误
## 加载自己的地图