news 2026/6/15 11:42:32

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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. 更新数据模型并通知主线程

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/11 20:36:50

详细分析线程池上下文的基本知识(附Demo)

目录前言1. 基本知识2. 父子线程数据不同3. 父子线程数据相同前言 Java基本知识: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)【Java项目】实战CRUD的功能整理(持续更新) 1. 基本知识 本意大概…

作者头像 李华
网站建设 2026/6/10 22:28:41

16、深入探索 XML:从基础概念到 SQL Server 实践

深入探索 XML:从基础概念到 SQL Server 实践 1. XML 基础概念 XML,即可扩展标记语言,是一种元语言,用于定义其他语言,这些被定义的语言被称为标记语言。XML 文档是通过标记数据创建的,即将数据封装在开始标签和结束标签之间。这些标签定义的元素形成层次结构,使 XML 文…

作者头像 李华
网站建设 2026/6/14 1:57:38

Java毕设选题推荐:基于springboot的旅游网站系统的设计与实现基于springboot的旅游管理系统,在线旅游管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/6/10 14:29:18

计算机Java毕设实战-基于SpringBoot +Vue的动漫推荐系统设计与实现(协同过滤推荐算法)基于协同过滤算法的动漫推荐系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/6/13 16:52:23

麦多福生鲜超市库存管理信息系统sb+v

源码可s领取!!!麦多福生鲜超市库存管理信息系统基于 Spring Boot(SB)与 Vue.js(V)构建,旨在为麦多福生鲜超市提供精准、高效的库存管理解决方案,确保生鲜产品的新鲜度与供应稳定性,降低库存成本…

作者头像 李华
网站建设 2026/5/31 18:10:37

Java计算机毕设之基于Springboot+Vue的旅游推荐系统设计与实现基于springboot的旅游网站系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华