用途:该技能记录在 OneKey 应用中新增 WebSocket 事件订阅的完整流程,适用于实现新的 socket 事件、处理服务端推送消息或接入实时数据。
主要能力与关键文件:事件名与载荷类型定义在 packages/shared/types/socket.ts;WebSocket 事件处理器位于 packages/kit-bg/src/services/ServiceNotification/PushProvider/PushProviderWebSocket.ts。
使用方式分三步:一是在 EAppSocketEventNames 枚举中新增事件名,约定枚举键用 camelCase、字符串值用 SCREAMING_SNAKE_CASE;二是在 socket.ts 中定义载荷接口,必须包含 msgId: string 用于消息确认;三是在 PushProviderWebSocket.ts 的 initWebSocket() 方法中导入载荷类型并注册 this.socket.on 处理器。
处理器模式包括:简单确认加动作、带日志、带校验、以及通过 appEventBus.emit 转发事件。文档给出 userInfoUpdated 事件的完整示例。
重要限制:必须调用 serviceNotification.ackNotificationMessage 确认消息,action 通常用 ENotificationPushMessageAckAction.arrived,否则服务端会认为消息未送达并反复重试;确认应尽早执行以防重复投递。可选 action 还有 clicked。文档末尾提供检查清单,涵盖事件名、载荷、导入、处理器、确认与日志等步骤。