web worker使用总结(包含多个worker)

web worker在项目中使用的整体架构图:

  1. websocketWorker - 业务数据上报,及把数据通过事件把数据发给主线程;

2.CommandWorker - 处理复杂、耗时等业务数据,把处理结果通过事件发送给主线程;

3.使用MessageChannel实现websocketWorker和CommandWorker之间的数据传递(websocketWorker收到的数据直接传给CommandWorker);

数据流程图:

核心组件说明

1. WebSocket Worker (websocketWorker.ts)

  • **职责**: WebSocket 连接管理、消息接收解析、心跳检测

  • **核心类**: `Websocket`

  • **关键功能**:

  • TLV 格式消息解析

  • 通过 MessagePort 与 Command Worker 通信

2. Command Worker (commandWorker.ts)

  • **职责**: 业务指令处理、数据模型管理、API 请求

  • **核心类**: `CommonWorker`

  • **关键功能**:

  • 指令类型识别和分发

  • 业务数据模型管理

  • 多种指令处理器协调

3. 指令处理器

  • **FuncCommand**: 处理功能按键指令

4. 通信机制

  • **MessageChannel**: Worker 间通信通道

  • **postMessage**: 主线程与 Worker 通信

  • **MessagePort**: Worker 间直接通信

关键流程说明

初始化流程

  1. 主线程创建两个 Worker 实例

  2. 创建 MessageChannel 建立 Worker 间通信

  3. WebSocket Worker 初始化连接

  4. Command Worker 初始化配置和指令处理器

消息处理流程

  1. WebSocket 服务器发送 TLV 格式消息

  2. WebSocket Worker 解析消息

  3. 根据 tag 类型分发到 Command Worker 或主线程

  4. Command Worker 识别指令类型并分发到对应处理器

  5. 处理器执行业务逻辑并调用 API

  6. 更新数据模型并通知主线程

相关推荐
勉灬之几秒前
Next.js + Prisma 跨平台部署踩坑记
开发语言·javascript·ecmascript
cll_8692418912 分钟前
一个好看的Wordpress博客文字css样式
前端·css·ui
adinnet20264 分钟前
深度拆解企业级 Agent 架构:LangGraph + 知识图谱 + 向量检索的协同设计
人工智能·架构·知识图谱
糖果店的幽灵6 分钟前
langgraph分支之 - 动态分支(Dynamic Branch)
java·前端·javascript·人工智能·langgraph
meilindehuzi_a16 分钟前
Workflow 与 Agent 有什么区别:从 LangChain 流水线到智能体决策
前端·人工智能
这是个栗子24 分钟前
前端开发中的常用工具函数(九)
开发语言·javascript·ecmascript·at
listening77734 分钟前
HarmonyOS 6.1 混沌工程实战:从“故障免疫”到“韧性架构”
华为·架构·harmonyos
晚风吹长发40 分钟前
Docker使用——Docker容器及相关命令
linux·运维·服务器·docker·容器·架构
郝学胜-神的一滴1 小时前
[简化版 GAMES 104] 现代游戏引擎 02:拆解现代游戏引擎5+1层级架构,吃透引擎底层核心逻辑
c++·unity·架构·游戏引擎·图形渲染·unreal engine·系统设计
电子科技圈1 小时前
先进封装、芯粒架构和3D集成——先进异构集成亟需兼具标准化与定制化能力的互联及总线IP解决方案
tcp/ip·设计模式·架构·软件构建·代码规范·设计规范