news 2026/6/4 10:54:25

小智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/5/31 18:53:59

远程代打卡难根治?深度解析盖雅蓝牙打卡如何从底层杜绝考勤舞弊

在数字化办公日益普及的今天,考勤打卡作为企业管理的基础环节,正面临前所未有的信任挑战。市场上层出不穷的代打卡服务和各种模拟定位软件,让本应严肃的职场规则变成了一场技术博弈。这种被称为灰色产业链的现象,不仅让企业承担了…

作者头像 李华
网站建设 2026/5/31 19:03:40

Hunyuan-MT-7B购买Token送算力?限时优惠活动开启

Hunyuan-MT-7B:当大模型翻译遇上“一键部署”,AI普惠正在发生 在边疆地区的基层医院里,一位汉族医生面对维吾尔族患者的病历记录束手无策;在西南山区的双语课堂上,教师为找不到高质量的彝汉教学材料而发愁;…

作者头像 李华
网站建设 2026/6/2 16:18:33

权限控制设计:多用户场景下的安全访问机制

权限控制设计:多用户场景下的安全访问机制 引言:从万物识别项目看多用户系统的权限挑战 随着AI模型在企业级应用中的广泛部署,如何在多用户环境中保障资源的安全访问成为系统设计的关键命题。以“万物识别-中文-通用领域”这一阿里开源的图像…

作者头像 李华
网站建设 2026/5/31 19:04:12

deepcode国内使用教程

deepcode国内使用教程 本文面向国内网络环境/国内模型接口的使用场景,整理了从 GitHub 克隆 DeepCode 后,为了“能跑起来 更稳定 更快写代码进文件”需要做的关键修改点与原因。 说明:本文不会写入任何真实 API Key,请按自己的…

作者头像 李华