news 2026/7/31 19:13:14

小智Pro支持固件在线更新:原理+流程拆解(续)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小智Pro支持固件在线更新:原理+流程拆解(续)

前文分享了小智AI自定义唤醒词+表情包+背景图的基本原理:

小智AI 如何自定义唤醒词+背景图:原理+流程拆解

远程控制+文字唤醒,小智Pro开放API调用,释放小智无限潜力

有朋友好奇:

浏览器生成的assets.bin是如何发送给设备的?

今日分享,聊聊前端-后端-设备端的三方通信逻辑。

基于此,给出小智Pro的具体实现方案。

1. 架构设计

回到前文的问题:

浏览器生成的assets.bin如何发送给设备端

参考:https://github.com/78/xiaozhi-assets-generator

来看小智的实现思路:一个非常巧妙的三方通信架构:

  • 前端 ↔️ 后端:WebSocket (控制通道)
  • 设备 ↔️ 后端:HTTP (数据通道)
  • 后端:作为中间协调者,连接两端

简单画个流程图:

为啥要这么搞?

  • 解耦设计:前端不直接与设备通信
  • 协议桥接:WebSocket ↔ HTTP 的实时数据转发
  • 状态同步:通过事件机制实现三端状态一致
  • 安全机制:临时URL,防止未授权访问

2. 完整流程

了解了架构,我们来看完整流程:

阶段1-2:前端准备阶段

前端通过WebSocket告诉后端:“我要上传一个文件”

const createMessage = { type: 'create_file', fileName: 'assets.bin', fileSize: blob.size }; this.ws.send(JSON.stringify(createMessage));

阶段3:后端生成URL

后端创建临时文件会话并返回下载URL:

阶段4:前端配置设备

前端拿到URL后告诉设备去下载:

await callMcpTool('self.assets.set_download_url', { url: downloadUrl // 这就是上面的download_url })

阶段5:设备端HTTP下载

// 设备端直接HTTP GET请求 if (!http->Open("GET", url)) { ESP_LOGE(TAG, "Failed to open HTTP connection"); return false; }

阶段6:后端转发数据给设备

当设备请求下载时,后端检测到这个请求对应某个session,不从文件系统读取,而是实时转发前端通过WebSocket发送的二进制数据:

阶段7:后端通知前端传输开始

当后端开始向设备提供HTTP数据时,发送transfer_started事件给前端:

case 'transfer_started': this.currentSession.transferStarted = true if (this.onTransferStarted) { this.onTransferStarted() // 通知前端可以开始发送数据了 }

阶段8:前端传输完成 & 后端下载完成

当前端传输的数据,被后端全部接收后,销毁session,完结撒花!

3. 小智Pro 实现

免费体验👇:

https://mkwyqeoebedx.sealosbja.site

基于以上原理和流程,小智Pro 服务端,现已支持自定义唤醒词+背景图

注:需下载小智Pro-v2.0.5.1及以上版本固件体验:

https://github.com/hougeai/xiaozhiPro/releases

写在最后

本文分享了小智AI实现固件更新前端-后端-设备端的三方通信逻辑。。

如果对你有帮助,不妨点赞收藏备用。

欢迎来聊。

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

当Ada记录类型含有可变长数组分量时的逆向分析

请看IDA生成的以下伪代码:char *a7;//函数的输入参数int v31; // ecxint v32; // ecxint v33; // edxint v34; // ebxint v35; // ecxint v36; // ecxint v37; // edxint v38; // eaxint v39; // edxv31 *a7;if ( v31 > 99 )v31 99;v32 (~(532 * v31 532) &g…

作者头像 李华
网站建设 2026/7/29 5:23:48

刀客doc:小米是时候切断和粉丝的脐带了

文/刀客doc(头条精选作者)刚刚,小米就“大熊事件”给出了一份相对完整的处理结果。公司发言人通过官微回应,公布了内部调查结论,文中称:“因为米粉,所以小米。米粉的信任和支持,是小米不断前行的基石。我们…

作者头像 李华
网站建设 2026/7/30 7:40:18

晶台光耦在储能系统中的作用

光耦在储能系统中通过电气隔离实现高压与低压电路的安全隔离,是保障系统稳定运行的关键器件。晶台光耦KL1018/KL1019系列采用LSOP4封装,具备5KV隔离电压及-55~110℃宽温特性,广泛应用于太阳能储能逆变器。其红外发射二极管与光电晶体管耦合结…

作者头像 李华
网站建设 2026/7/31 7:15:04

虎贲等考 AI:AI 重构学术写作生态,全流程智能辅助赋能科研新可能

在学术探索的道路上,从选题构思到答辩收官,科研工作者与学子常被文献搜集繁琐、数据支撑薄弱、格式规范复杂、查重降重棘手等问题困扰。虎贲等考 AI 作为一款依托前沿人工智能技术打造的专业论文写作辅助工具,以 “全流程覆盖、高专业保障、强…

作者头像 李华
网站建设 2026/7/29 11:49:47

写论文软件哪个好?虎贲等考 AI 凭 “学术闭环力” 稳坐首选

毕业季的论文攻坚战,“写论文软件哪个好” 成了学子圈的高频拷问。有的软件文献引用虚拟无据,有的生成内容缺乏数据支撑,有的功能碎片化需反复切换工具 —— 真正靠谱的写论文软件,既要 “写得快”,更要 “写得专业、写…

作者头像 李华