设置的实时
Some checks failed
Deploy / deploy (push) Has been cancelled

This commit is contained in:
2025-10-11 13:35:21 +08:00
parent f45d07dbe7
commit 0725e222dc
9 changed files with 229 additions and 7 deletions

View File

@@ -410,3 +410,63 @@ export function createWebSocketComposable<T extends WebSocketMessage>(
removeHandler: (h: MessageHandler<T>) => ws.removeHandler(h),
}
}
/**
* 配置更新消息类型
*/
export interface ConfigUpdate extends WebSocketMessage {
type: "config_update"
key: string
value: any
}
/**
* 配置 WebSocket 连接管理类
*/
class ConfigWebSocket extends BaseWebSocket<ConfigUpdate> {
constructor() {
super({
path: "config",
})
}
/**
* 发送配置更新
*/
updateConfig(key: string, value: any) {
this.send({
type: "config_update",
key,
value,
})
}
}
/**
* 用于组件中使用配置 WebSocket 的 Composable
*/
export function useConfigWebSocket(handler?: MessageHandler<ConfigUpdate>) {
const ws = new ConfigWebSocket()
onMounted(() => {
if (handler) {
ws.addHandler(handler)
}
})
onUnmounted(() => {
if (handler) {
ws.removeHandler(handler)
}
ws.disconnect()
})
return {
connect: () => ws.connect(),
disconnect: () => ws.disconnect(),
updateConfig: (key: string, value: any) => ws.updateConfig(key, value),
status: ws.status,
addHandler: (h: MessageHandler<ConfigUpdate>) => ws.addHandler(h),
removeHandler: (h: MessageHandler<ConfigUpdate>) => ws.removeHandler(h),
}
}