news 2026/4/17 15:44:13

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/4/16 17:20:35

Spring Bean自动装配(Autowiring)模式详解

Spring Bean自动装配&#xff08;Autowiring&#xff09;模式详解一、核心概念&#xff1a;自动装配 vs 手动装配装配方式核心区别配置方式&#xff08;XML示例&#xff09;手动装配开发者显式指定每个依赖项的引用。使用 <property> 标签的 ref 或 value 属性。自动装配…

作者头像 李华
网站建设 2026/4/11 1:23:33

基于AI智能名片链动2+1模式S2B2C商城小程序的商户端微商平台构建研究

摘要&#xff1a;在数字化商业浪潮下&#xff0c;商户端微商面临激烈竞争&#xff0c;需构建全面且高效的平台体系。本文聚焦AI智能名片链动21模式S2B2C商城小程序在商户端微商平台构建中的应用&#xff0c;从技术、宣传、资源三个平台维度展开研究。通过分析该模式在各平台的作…

作者头像 李华
网站建设 2026/4/16 21:51:25

专注充电桩投资,招募城市合伙人 - 慧知开源充电桩平台

专注充电桩投资&#xff0c;招募城市合伙人 - 慧知开源充电桩平台 我们提供资本与战略&#xff0c;您负责落地与执行。本团队的核心业务是 投资建设充电桩&#xff0c;并作为您的投资人兼战略顾问&#xff1a;投入全部资金&#xff0c;并在选址、技术、资源等关键环节提供支持&…

作者头像 李华
网站建设 2026/4/11 22:21:55

Java毕设选题推荐:基于vue+协同过滤算法的动漫推荐系统热门动漫浏览、文章专栏阅读【附源码、mysql、文档、调试+代码讲解+全bao等】

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

作者头像 李华
网站建设 2026/4/15 11:39:32

两种常见开关中断方式对比

经常会遇到两种典型的中断禁用 / 启用实现&#xff1a;一种是基于纯汇编编写的Arch_IntSave/Arch_IntDisable函数&#xff0c;另一种是编译器内置的__enable_irq/__disable_irq内联函数&#xff0c;这两种的区别和功能具体拆解一下。一、核心实现与功能拆解1. 纯汇编实现&#…

作者头像 李华
网站建设 2026/4/17 1:22:34

城市仿真软件:CityEngine_(11).城市规划与设计实践

城市规划与设计实践 在上一节中&#xff0c;我们探讨了城市仿真软件的基本功能和应用场景。接下来&#xff0c;我们将深入到城市规划与设计的实践部分&#xff0c;通过具体的案例和代码示例&#xff0c;展示如何利用CityEngine进行城市模型的创建、编辑和仿真。本节将涵盖以下…

作者头像 李华