/** * miniapp 运行时配置(host/device_id/token 占位,由用户在设置页或 build env 填) * * 这些值在真实部署前是占位: * - RELAY_HOST:ws/wss 地址,需替换为实际部署的 df-relay 地址 * - DEVICE_ID:用户首次配置桌面端时生成的设备 ID * - TOKEN:对齐 df-relay 的 DF_RELAY_TOKEN(生产建议每 device 独立 token) */ export interface MiniappConfig { /** relay WS 地址(含协议),如 'ws://192.168.1.100:8080/ws/miniapp' 或 'wss://relay.example.com/ws/miniapp' */ relayHost: string /** 配对绑定的设备 ID */ deviceId: string /** 配对 token(对齐 df-relay DF_RELAY_TOKEN) */ token: string /** 心跳间隔(ms) */ heartbeatInterval: number /** 重连初始间隔(ms,指数退避) */ reconnectBaseDelay: number /** 重连最大间隔(ms) */ reconnectMaxDelay: number } /** * 默认配置(占位值,需替换) * * 真实部署:用户在设置页填 relayHost/deviceId/token,或通过 build-time env 注入。 * MVP 阶段留占位让类型自洽,实际连接会失败(token 校验不通过 → relay 关连接, * 这符合预期,提示用户配置)。 */ export const defaultConfig: MiniappConfig = { relayHost: 'ws://localhost:8080/ws/miniapp', deviceId: 'PLACEHOLDER_DEVICE_ID', token: 'devflow-relay-default-token', heartbeatInterval: 30000, reconnectBaseDelay: 1000, reconnectMaxDelay: 30000, } /** 单例配置(miniapp 内存配置,后续接 storage 持久化) */ let _config: MiniappConfig = { ...defaultConfig } export function getConfig(): MiniappConfig { return _config } export function setConfig(patch: Partial): void { _config = { ..._config, ...patch } }