MQTTX Web 数据收集政策全解析:本地化存储、直连 Broker 与 GTM/GA 埋点的隐私边界
开发工具物联网后端【免费下载链接】MQTTXA Powerful and All-in-One MQTT 5.0 client toolbox for Desktop, CLI and WebSocket.项目地址https://gitcode.com/gh_mirrors/mq/MQTTX点击查看免费下载作为一款可在浏览器中直接运行的 MQTT 5.0 WebSocket 客户端MQTTX Web 无需安装即可帮助开发者快速调试 MQTT 服务与应用。浏览器客户端天然会引发一个核心疑问用户的配置、连接信息和收发消息究竟流向哪里本文以 MQTTX 官方在仓库中维护的《数据收集声明》文档为骨架逐条拆解其隐私承诺并结合 web/src 目录下的真实源码验证配置数据本地处理消息仅与所连 Broker 相关无云端数据处理仅用 GTM/GA 采集页面访问指标这四条声明的实现基础。读完本文你将理解 MQTTX Web 的数据流向边界以及数据收集政策在产品中是如何被加载与呈现的。政策文档的背景与位置《数据收集声明》日文版原文为《データ収集の免責事項》是 MQTTX Web 面向最终用户展示的隐私承诺全文围绕四个核心要点展开所有配置数据均在用户本机浏览器内本地处理不会从浏览器发送到外部任何主题与消息数据仅与用户所连接的 MQTT Broker 相关项目不进行任何云端操作或数据处理项目使用 Google Tag ManagerGTM与 Google AnalyticsGA仅收集页面访问指标不涉及用户隐私数据。该文档在仓库中以多语言版本维护同一目录下存在>import Lowdb from lowdb import LocalStorage from lowdb/adapters/LocalStorage class DB { private db: Lowdb.LowdbSyncSchema public constructor() { const adapter new LocalStorage(db) this.db Lowdb(adapter) ... } }该 Schema 覆盖了窗口尺寸、语言、主题、连接列表connections、推荐连接suggestConnections、历史负载payloadsHistory、历史头信息headersHistory等数据均以localStorage的db键为存储载体。由此可以确认连接配置host、port、用户名、密码、MQTT 版本、订阅列表等通过 web/src/utils/api/connection.ts 的createConnection、updateConnection等函数写入本地数据库界面设置当前语言、主题、自动重连、自动滚动、多主题等通过 web/src/utils/api/setting.ts 的loadSettings/setSettings读写settings字段而 store 层 web/src/store/modules/app.ts 的每次状态变更如TOGGLE_LANG、TOGGLE_THEME都会同步调用setSettings持久化用户甚至可以通过getAllData()一次性导出全部本地数据、通过importAllData(data)将备份重新写回localStorage从侧面印证了数据驻留本地、可由用户自主掌控的设计。也就是说声明第一条描述的本地处理、不出浏览器对应的正是这套以localStorage为后端、无任何服务端参与的状态管理链路。主题与消息数据为什么仅与所连 Broker 相关声明第二条指出主题Topic和消息Message数据仅与用户连接的 MQTT Broker 相关。要理解这句话需要先看清 MQTTX Web 的网络模型它是一个纯粹的浏览器直连 Broker的 WebSocket 客户端消息链路中不存在任何中转服务器。在 web/src/utils/mqttUtils.ts 中连接的建立由mqtt.js完成const url getUrl(record) const curConnectClient: MqttClient mqtt.connect(url, optionsTempWorkAround)其中getUrl根据用户填写的协议、主机、端口与路径拼接出形如wss://broker.emqx.io:8084/mqtt的 WebSocket 地址getUrl 实现。从默认值来看在线部署环境下默认使用wss协议、端口8084默认 host 为公共 Brokerbroker.emqx.iogetDefaultRecord。由此可以得出明确的技术结论消息的收发路径是浏览器 ⇄ 用户指定 Broker的点对点链路MQTTX Web 本身只是消息的载体与可视化工具任何主题下的消息内容其所有权与存储责任都在用户所连接的 Broker 一侧MQTTX Web 不会在本地持久化一份服务端副本更不会把消息转发给第三方用户填写的 Broker 地址完全由用户决定这也意味着消息数据的边界取决于用户自己选择的服务器。这一点与声明第一条共同构成了政策的核心MQTTX Web 是本地客户端 直连 Broker的架构项目自身不承担消息数据的中转或汇聚角色。不进行任何云端操作或数据处理的架构依据声明第三条项目不进行任何云端操作或数据处理。从仓库结构可以交叉验证web 是一个纯前端工程web/package.json 中name为mqttx-web其构建产物为可直接部署的静态站点前端的数据读写全部落在localStorage见上文 web/src/database/index.ts没有任何指向自有后端的业务 API与外部系统的交互仅有两类一是用户主动发起的 MQTT 连接直连 Broker二是下文将分析的页面统计埋点GTM/GA。前者是 MQTT 客户端工具的本职工作后者仅采集匿名访问指标。因此无云端操作意味着 MQTTX Web 不存在项目自营的数据处理服务它既不会替你缓存消息也不会分析你的连接内容更不会把配置数据同步到某个账号体系——登录按钮仅用于跳转到 EMQX 平台服务与本工具的数据处理无耦合。GTM 与 GA只采集页面访问指标声明第四条承认了项目对统计埋点的使用通过 Google Tag ManagerGTM与 Google AnalyticsGA收集页面访问指标但不涉及用户隐私数据。这是整份政策中唯一出浏览器的数据边界清晰。对应实现位于 web/src/main.tsVue.use(VueGtm, { id: GTM-KHSFXHT, enabled: process.env.VUE_APP_IS_ONLINE_ENV true, debug: false, } as VueGtmUseOptions)需要特别注意的是其中的enabled条件只有当VUE_APP_IS_ONLINE_ENV环境变量为true即在线生产部署时GTM 埋点才会被激活在本地开发或离线构建场景下埋点默认不启用。GTM 容器 ID 为GTM-KHSFXHT页面内后续的统计行为由该容器统一管理。与之配套的是 web/src/utils/gaCustomLinks.ts它为关于/帮助页面中的外链官网、文档、论坛、EMQX Cloud 等统一拼接utm_sourcemqttx-webutm_mediumreferralutm_campaign...追踪参数用于识别这些页面的访问来源。这与声明中仅收集页面访问指标的描述一致采集对象是页面浏览量、外链点击等匿名行为指标而非用户输入的 MQTT 配置或消息内容。政策在产品中的呈现方式关于页面的数据收集声明弹窗数据收集政策并不只是一份孤立的文档它在产品中拥有完整的呈现链路由三个部分协作完成入口在关于页面顶部的快捷操作区存在一个数据收集政策链接点击后打开声明弹窗见 web/src/views/about/index.vue渲染组件DataCollectionPolicy.vue 负责加载并渲染 Markdown 内容弹窗宽度为 540px且隐藏了取消按钮仅保留确认关闭按语言动态加载组件监听当前语言变化按data-collection-${lang}.md的命名规则动态引入对应语言的声明文件private async loadAndRenderMarkdown() { const md markdownit() try { const markdownFile require(/assets/doc/policy/data-collection-${this.getterLang}.md) this.renderedContent md.render(markdownFile.default) } catch (error) { console.error(Error loading the markdown file:, error) } }这意味着声明正文与界面语言实时联动——切换语言后立即重新渲染对应语言的免责声明若某一语言的文件缺失则捕获异常并输出错误日志不会影响页面其他功能。这种文档即配置、随语言动态加载的实现方式也让后续新增语言只需在 policy 目录 增加同名 Markdown 文件即可。小结四项声明对应的实现边界政策声明实现依据数据边界配置数据本地处理、不出浏览器web/src/database/index.ts 基于lowdbLocalStorage的本地库web/src/utils/api/setting.ts、web/src/utils/api/connection.ts 全部读写本地浏览器localStorage内部主题与消息仅与所连 Broker 相关web/src/utils/mqttUtils.ts 通过mqtt.connect(url)直连用户指定的 Broker浏览器 ⇄ 用户指定 Broker 的点对点链路不进行任何云端操作或数据处理web 为纯前端静态工程无自有业务后端无项目自营的数据服务仅用 GTM/GA 采集页面访问指标web/src/main.ts 中VueGtm配置GTM-KHSFXHT受VUE_APP_IS_ONLINE_ENV开关控制web/src/utils/gaCustomLinks.ts 的 UTM 链接追踪仅匿名页面访问/外链点击指标总结而言MQTTX Web 的数据收集政策与其浏览器本地客户端 WebSocket 直连 Broker的架构完全吻合业务数据配置、消息始终留在本地与用户自己的 Broker 之间项目仅通过 GTM/GA 获取最基础的页面访问统计且这一埋点还受部署环境开关的约束。对于关心数据流向的 MQTT 开发者而言这份声明与上述源码共同构成了可验证的隐私边界——你可以在 policy 目录 查看中英日三语原文并通过 DataCollectionPolicy.vue 追踪其在界面中的呈现方式。赞分享开发工具物联网后端【免费下载链接】MQTTXA Powerful and All-in-One MQTT 5.0 client toolbox for Desktop, CLI and WebSocket.项目地址https://gitcode.com/gh_mirrors/mq/MQTTX点击查看免费下载相关推荐MQTTX Web 数据收集政策解读本地优先的隐私设计、存储实现与统计埋点机制MQTTX Web 数据收集政策解读本地优先的隐私设计、存储实现与统计埋点机制 MQTTX Web 是运行在浏览器中的开源 MQTT 5.0 WebSocke开发工具物联网后端MQTTX Web 数据收集声明全解读本地处理机制、GTM/GA 指标收集边界与多语言实现MQTTX Web 数据收集声明全解读本地处理机制、GTM/GA 指标收集边界与多语言实现 MQTTX Web 是一款无需安装即可在浏览器中运行的 MQTT开发工具物联网后端MaiBot 用户隐私条款全解析数据收集边界、遥测机制与本地化存储设计MaiBot 用户隐私条款全解析数据收集边界、遥测机制与本地化存储设计 MaiBot 作为基于大语言模型的智能体MaiSaka项目在处理用户输入输出、构人工智能大模型AI Agent交互助手插件系统上一篇CodeGuide 字节码编程Javassist 篇二 —— CtField 属性定义与多种入参/出参方法生成实战下一篇Open Policy AgentOPA入门指南用 Rego 将策略写成代码在任意软件栈中统一执行创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

AI编程与代码质量:Cursor加速时代下的“反Cursor”守门之道

AI编程与代码质量:Cursor加速时代下的“反Cursor”守门之道

最近这段时间,关于 Cursor 的讨论已经到了铺天盖地的程度。从怎么注册、怎么汉化、怎么设置中文回复,到免费额度怎么续、响应慢怎么排查,几乎每个写代码的人都在折腾这套流程。我身边很多朋友也确实从质疑 AI 编程,变成了忠实的“…

2026/10/13 9:26:01 阅读更多 →
Java零基础第一课:从环境配置到HelloWorld,快速上手核心语法

Java零基础第一课:从环境配置到HelloWorld,快速上手核心语法

直接开门见山说:我这些年带过不少零基础的人学编程,也见过很多自学Java的朋友在“第一课”就卡住。卡住的原因不是Java有多难,而是大多数人上来就被环境配置劝退,或者被一堆“术语轰炸”打懵,连自己写的第一行代码都跑…

2026/10/13 9:26:01 阅读更多 →
图像加密算法设计:有限域置换多项式与Matlab实现

图像加密算法设计:有限域置换多项式与Matlab实现

图像加密和文本加密有一个很本质的区别:一段文字用AES加密之后,人眼根本看不出规律,但图像不一样,它天然带有强烈的空间结构、数据冗余和可视化特征。我第一次接触图像加密课题时,导师给的方向是“有限域置换多项式”&…

2026/10/13 9:24:57 阅读更多 →

最新新闻

陶瓷股骨头疲劳试验机PWS-5的技术原理与应用

陶瓷股骨头疲劳试验机PWS-5的技术原理与应用

1. 设备概述与行业背景PWS-5电子伺服组合式陶瓷股骨头疲劳试验机是骨科植入物检测领域的专业设备,主要用于人工髋关节中陶瓷股骨头部件的耐久性测试。这类设备在医疗器械生产企业、第三方检测机构和科研院所中具有广泛应用,是确保人工关节产品质量的关键…

2026/10/13 10:11:34 阅读更多 →
STM32下uC/OS-III系统实战指南:从任务管理到多任务同步全解析

STM32下uC/OS-III系统实战指南:从任务管理到多任务同步全解析

1. OS概述 在嵌入式开发中,随着系统功能的日益复杂,传统的裸机编程方式逐渐暴露出局限性。当多个任务需要并发执行、实时响应要求较高时,引入操作系统(OS)成为必然选择。操作系统在嵌入式领域的引入,主要目的包括: 任务调度管理:操作系统能够合理分配 CPU 时间,让多个…

2026/10/13 10:11:34 阅读更多 →
Inbox/Outbox 模式实战:构建跨服务事务最终一致性

Inbox/Outbox 模式实战:构建跨服务事务最终一致性

Inbox/Outbox 模式实战:构建跨服务事务最终一致性 在分布式与微服务架构中,一个核心业务操作的完成往往伴随着多个下游系统的状态联动。 以电商中的订单创建为例,主干业务落库后通常需要: 通知库存服务锁定并初始化库存&#xff1…

2026/10/13 10:11:34 阅读更多 →
6.3.5 CRL 过期了,但证书本身是好的

6.3.5 CRL 过期了,但证书本身是好的

6.3.4 测的是 CRL 取不到,这条测的是 CRL 取到了,但它是旧的。CRL 文件本身带有效期,nextUpdate 一过就失效。设备读到一个已经过期的 CRL,该怎么办? 标准给的答案是宽容:报 Warning: CRL expired&#xff…

2026/10/13 10:11:34 阅读更多 →
Hermes Agent实战:本地AI智能体框架的安装配置与任务自动化

Hermes Agent实战:本地AI智能体框架的安装配置与任务自动化

消息队列里躺着上百条待处理任务,浏览器开着一堆文档页面,IDE里代码刚改到一半,这时候还要手动去跑测试、汇总报告、整理输出。我之前就是这么过来的,白天大部分时间不是花在写代码上,而是花在“把东西从一个地方搬到另…

2026/10/13 10:11:34 阅读更多 →
考研复试机器学习面试:高频考点与一周实操准备指南

考研复试机器学习面试:高频考点与一周实操准备指南

1. 复试现场那道机器学习题,到底在考什么考研复试的面试环节,计算机方向的学生最怕被问到机器学习。怕的原因很实在:初试不考,本科课程可能只讲过一点皮毛,真到面试现场,导师随口一句“过拟合怎么处理”就能…

2026/10/13 10:10:30 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →