xiaohack's Blog - MQTT
type: channel
link: https://blog.xiaohack.org/tag/MQTT/
items: 教程：构建基于 Coreflux MQTT 与托管数据库的IoT数据管道
items: PushGo，全新消息推送 App，支持 iOS / watchOS / macOS / Android
items: [开源自荐] MQTT 客户端调试工具
items: 一文带你看懂MQTT——MQTT pwn初探
items: 开源自荐，MQTT 调试器，请大佬们帮忙看看
items: 使用 MQTT / Python / Grafana 实现小米路由器网速查看与统计
items: 基于 NODE.JS 和 MQTT 开发的新一代高性能内网穿透工具

教程：构建基于 Coreflux MQTT 与托管数据库的IoT数据管道
type: item
date: 2026-02-03T16:06:19+08:00
description: 使用托管数据库部署 Coreflux MQTT 代理MQTT 代理 通过发布-订阅消息模式连接物联网设备和应用程序，使其成为现代 物联网 基础设施的重要组成部分。Coreflux 是一个 低代码 MQTT 代理，增加了实时数据处理和转换功能，让你可以直接与 DigitalOcean 托管数据库（包括 MongoDB、PostgreSQL、MySQL 和 OpenSearch）集成，而无需编写自定义集成代码。你将学到什么： 本教程将引导你部署一个完整的物联网数据管道——从在 DigitalOcean 上设置托管数据库集群和 Coreflux MQTT 代理，到配置安全的 VPC 网络、使用 Coreflux 的物联网语言 (LoT) 构建数据转换模型，以及自动将处理后的物联网数据存储到你选择的数据库中。最终你将获得一个可用于生产环境的设置，能够处理物联网应用的实时消息传递和持久存储。关键要点在深入了解分步部署过程之前，以下是你将学到的关键点：在 DigitalOcean 上部署托管数据库集群（PostgreSQL、MongoDB、MySQL 或 OpenSearch），用于可扩展的物联网数据存储。使用 Marketplace 镜像或 Docker 在 DigitalOcean Droplet （DigitalOcean的VPC）上设置 Coreflux MQTT 代理。创建安全的 VPC 网络以连接你的 MQTT 代理和数据库，无需公开暴露。使用 Coreflux 的物联网语言 (LoT) 构建实时数据管道，实现低代码物联网自动化。自动转换和存储物联网数据，从 MQTT 主题到数据库表、集合或索引。验证端到端数据流，从模拟传感器通过转换模型到数据库存储。本教程为需要实时消息传递结合持久数据存储以及搜索、分析或关系查询等高级功能的物联网应用提供了一个可用于生产环境的基础。你将构建什么在本教程结束时，你将得到：一个用于可扩展存储的托管数据库集群（PostgreSQL、MongoDB、MySQL 或 OpenSearch）一台运行 Coreflux MQTT 代理的 DigitalOcean Droplet一个用于安全 物联网通信的虚拟私有云 (VPC) 网络使用 LoT Notebook 扩展进行的实时数据模拟低代码数据转换模型和数据库集成路由用于 物联网自动化 的完整 数据集成与转换 管道Coreflux 与 DigitalOcean 合作Coreflux 通过物联网语言编程语言在 DigitalOcean 云平台上提供轻量级 MQTT 代理和数据管道工具，以实现高效的物联网通信。什么是 MQTT？MQTT（消息队列遥测传输）是一种轻量级的、发布-订阅网络协议，在物联网生态系统中被广泛采用。专为受限设备和低带宽、高延迟或不稳定的网络设计，MQTT 能够在带宽受限的环境中实现高效、实时的消息传递。关于 CorefluxCoreflux 提供了一个轻量级 MQTT 代理，以促进物联网设备与应用程序之间的高效、实时通信，包括每个用例所必需的实时数据转换功能。为可扩展性和可靠性而构建，Coreflux 专为低延迟和高吞吐量至关重要的环境量身定制。无论你是构建一个小型物联网项目还是部署工业监控系统，Coreflux 都能处理设备之间的消息路由和数据流。在 DigitalOcean 云平台上使用 Coreflux，你将获得：数据处理： 在你的数据所在之处集中处理你的数据处理需求，确保实时数据处理。数据集成： 轻松与其他 DigitalOcean 服务（如托管数据库 PostgreSQL、MongoDB、MySQL 或 OpenSearch）集成，确保为你的所有数据需求提供一个单一且简单的生态系统。可扩展性： 轻松处理不断增长的数据和设备数量，而不会影响性能。可靠性： 确保在所有连接的设备之间进行一致且可靠的消息传递。准备工作在开始本 MQTT 代理 部署教程之前，你需要：一个 DigitalOcean 帐户，可在DigitalOcean.com注册，支持绑定信用卡、支付宝或数字货币了解 MQTT 协议概念和 物联网 架构Visual Studio Code（用于 LoT Notebook 扩展）预计时间： 本教程大约需要 30-45 分钟完成，具体取决于数据库配置时间（通常每个数据库集群需要 1-5 分钟）。步骤 1 — 为物联网自动化创建网络基础设施为安全的 MQTT 通信创建 VPC 网络首先，你将创建一个虚拟私有云 (VPC)，以确保你的 物联网 服务和 MQTT 代理 之间的安全通信，无需公开访问。登录你的 DigitalOcean 控制面板从左侧导航栏进入 网络 → VPC点击 创建 VPC 网络为物联网自动化配置你的 VPC：名称…

PushGo，全新消息推送 App，支持 iOS / watchOS / macOS / Android
type: item
date: 2026-01-23T11:05:37+08:00
description: 我一直用 Bark ，很喜欢：省心、稳定，作者也一直在更新。PushGo 这个坑某种程度上就是从 Bark 开始的，先向作者致敬🫡。后来我自己维护的东西越来越多：服务器、CI 、脚本任务、家里设备……推送一开始还能靠“多发点提醒”解决，但很快就会变成另一种麻烦：消息很难整理。同一件事会从不同来源冒出来（监控、脚本、日志、告警），通知列表里一堆“碎片”，你要自己在脑子里拼图：到底发生了什么、现在处于什么状态、是偶发还是持续、有没有恢复。所以我干脆自己写了个 PushGo ，目前它的定位很明确：先把“收消息 + 更好整理”做好。后面再慢慢往更通用、更可扩展的方向演进。PushGo 的思路PushGo 的思路和 Bark 不太一样，更像 MQTT / Ntfy 那套：频道 + 订阅（ pub/sub ）。你创建频道、订阅频道，消息按主题走，路由和转发会灵活很多；未来不管是扩展更多推送渠道，还是把消息类型做得更丰富，这种结构都更顺手。 目前已经完成 iOS / watchOS / macOS + Android （ FCM ）平台适配，全部原生开发，apple 平台使用 Swift ，Android 平台使用 Kotlin WNS 和自有推送渠道正在路上，国内无法访问 FCM 的问题，自有渠道上线后就会得到解决 公共网关已部署，并且支持自部署网关 消息正文支持文本和部分 markdown 标签，可以渲染轻量级表格 消息支持 AES-GCM 加密，网关不保留任何与解密有关的数据 永久完全免费，不管客户端还是网关，纯公益运营 未来方向 客户端会持续推进更多平台支持，并不仅限于高性能设备，比如目前我自己就在做一个带屏的 ESP32 设备 目前客户端还很简单，也存在很多不足，尤其是 UI ，因为我自己实在没有这方面的天赋，所以 UI 只能尽量贴合系统原生，未来会持续改进优化，不断改进功能和体验，如果你有任何产品问题和建议，也可以加入 TG 群一起探讨，如果有小伙伴愿意提供 ui 设计方面的支持，欢迎 TG 私聊，感谢 服务端未来会加入 MQTT 等协议支持，不仅支持消息接入，也会提供第三方注册为客户端接收消息 我后面有一个比较明确的长期方向：参考 IoT 里的 物模型 概念，把一些东西（服务器、任务、设备）抽象成“模型”，用属性持续更新状态，然后在 App 端围绕这些状态做聚合展示、规则处理、报警/联动等。从消息接收器转身为综合消息枢纽，不过这个变化很大，未来尚不确定是基于 PushGo 演进，或者另开新坑 目前进度 & 参与测试目前网关 + iOS / watchOS / macOS + Android （ FCM ）都已经有初版了，也部署了公共网关，正式版预计将在一个月左右到来。作为免费运营的公益项目，欢迎大家参与共建，为 App 和网关的持续迭代建言献策，我不希望闭门造车，大家的需求才是最重要的演进方向 Apple：TestFlighthttps://testflight.apple.com/join/xhYmNZH8 Android （ FCM ）：TG 群获取https://t.me/+vq5kaaB3CFFmMTll 截图截图被第三方图床压缩过了，惨不忍睹，大家随便看看就好

[开源自荐] MQTT 客户端调试工具
type: item
date: 2026-01-16T12:25:06+08:00
description: github 地址：dreamlonglll/mini-mqtt-client: 一个开源的 mqtt 客户端工具。支持保存命令、定时循环发送和预处理脚本开发原因mqttx 不好用，没有指令存储功能佬友的另一个 mqtt 项目 【https://linux.do/t/topic/1365043】 采用的 Electron 架构，有点大。开发目的主要目的： 自用次要目的： 为开源事业做一次贡献项目优势采用 tarui 架构，整包大小控制在 6M（win/linux 端）左右github action 打包编译 win+mac+linux 多端应用支持 tls + 自签 CA + 客户端证书 + 证书密钥支持指令存储以及循环发送（按 server 分割）支持预处理脚本（按 server 分割） 采用 JavaScript 脚本引擎 + 沙箱模式支持：发送前预处理、接收后处理内置加密工具库（AES、SHA、MD5、HMAC 等）支持切换数据存储位置，可以搭配 OneDrive 实现云端同步 多图 开源感言首先感谢佬友的使用，也十分感谢提出建议的佬友，并期待佬友提出更多的建议其他目前时间挺空的，会及时更新📌 转载信息来源： https://linux.do/t/topic/1466123原作者： wang.wai转载时间： 2026/1/16 12:25:02

一文带你看懂MQTT——MQTT pwn初探
type: item
date: 2026-01-16T09:02:48+08:00
description: MQTT讲解MQTT（Message Queuing Telemetry Transport，消息队列遥测传输协议），是一种基于发布/订阅（publish/subscribe）模式的“轻量级”通讯协议，该协议构建于TCP/IP协议上，由IBM在1999年发布。MQTT最大优点在于，用极少的代码和有限的带宽，为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议，使其在物联网、小型设备、移动应用等方面有较广泛的应用。协议原理实现MQTT协议需要客户端和服务器端通讯完成，在通讯过程中，MQTT协议中有三种身份：发布者（Publish）、代理（Broker）（服务器）、订阅者（Subscribe）。其中，消息的发布者和订阅者都是客户端，消息代理是服务器，消息发布者可以同时是订阅者。MQTT传输的消息分为：主题（Topic）和负载（payload）两部分：（1）Topic，可以理解为消息的类型，订阅者订阅（Subscribe）后，就会收到该主题的消息内容（payload）；（2）payload，可以理解为消息的内容，是指订阅者具体要使用的内容。发布者 (Publisher)功能： 负责产生数据和消息，并将这些指定topic的消息发送（发布/Publish）到 Broker。代理/服务器（broker）可以理解为提供 mqtt 服务的代理服务器 ，通俗一点来讲就是”邮局”或者说是”消息中转中心”，每个 client 之间的通信都必须通过 Broker 来进行。简单来说，Broker就是一个中间人，负责管理所有客户端的连接，并确保消息能够从一个客户端安全、高效地传递到另一个或多个客户端。订阅者（Subscribe）功能： 负责接收它感兴趣的消息。它会提前告诉Broker它对哪个”主题”（Topic）的消息感兴趣（这个行为叫做订阅/Subscribe），就会接收订阅相同topic的client。客户端（Client）客户端可以充当发布者，也可以充当订阅者，也可以同时充当两个角色Client 是指任何连接到 Broker 的设备或应用程序 ，可以理解为”寄信人”和”收信人”。在物联网场景中，一个 Client 可以是一个温度传感器、一个智能灯泡、一部手机上的App，或者是一个在服务器上运行的数据分析程序。示意图client1，2，3，4同时连接broker，client1，2，3订阅topic"diag" ,这时client4发送topic为"diag" msg="hello"给broker，broker会向同时订阅topic="diag"的client1，2，3发送这个消息环境配置1.使用安装 Mosquitto MQTTsudo apt updatesudo apt install mosquitto mosquitto-clients2.启动服务并设置开机自启sudo systemctl enable mosquitto sudo systemctl start mosquitto 3.配置confsudo vim /etc/mosquitto/mosquitto.conf 在文件中添加listener 1883 #设置监听端口为 1883 allow_anonymous true # 可选，允许匿名访问（默认） 摁“Esc”+“：wq”退出后终端输入sudo systemctl restart mosquitto # 重启服务 netstat -lnvp查看一下，可以看到1883端口已经开始监听下载mqttxMQTTX Download点击新建连接，我这里是wsl启动的，但是监听了所有ip的端口，所以ip直接填0.0.0.0添加一个订阅利用终端进行连接测试终端输入mosquitto_pub -h localhost -t testtopic -m "Hello MQTT" 可以看到在客户端已经收到了消息终端输入mosquitto_sub -h localhost -t testtopic 用来订阅这个消息，在客户端输入主题testtopic发送之后，在客户端和终端界面均可以看到刚才发的消息python使用mqttpip install paho-mqtt 发送端# -*- coding: utf-8 -*-# -*- coding: utf-8 -*- import paho.mqtt.client as mqtt import time def on_connect(client, userdata, flags, rc): print("链接") print("Connected with result code: " + str(rc)) def on_message(client, userdata, …

开源自荐，MQTT 调试器，请大佬们帮忙看看
type: item
date: 2025-12-26T18:44:07+08:00
description: 佬们好，最近在工作的时候需要使用 mqtt，然后调试的时候来回复制粘贴有点麻了，于是 vibe 了一个 mqtt 客户端，可以发送快捷指令，导入导出配置，方便多设备调试，这是我的第一个开源项目，大佬们多多包涵。GitHub 项目地址：GitHub - HaxIOX/northrealm-mqtt: Northrealm (NR) — MQTT debugger / MQTT client (Web + Windows Desktop).web 端：Northrealm MQTT目前支持 Web 端 与 Windows 桌面端（Electron） ，后续计划扩展 移动端亮点功能配置导出 / 导入 ：快速备份与迁移多套 Broker / 连接参数快捷指令 ：一键发送常用消息 / 主题组合，减少反复复制粘贴排障友好日志与诊断提示 ：连接过程更直观，便于定位认证 / ClientID / 协议等问题演示图📌 转载信息来源： https://linux.do/t/topic/1365043原作者： HaxIOX转载时间： 2025/12/26 18:44:07

使用 MQTT / Python / Grafana 实现小米路由器网速查看与统计
type: item
date: 2023-06-27T15:47:30+08:00
description: 小米 AX6000 路由器虽然身形巨大无比，但自带的网速查看功能却十分简陋，约等于没有。幸好系统是基于 OpenWrt 的，可以自己动手实现一个。Step 1: 寻找数据命令：ubus call trafficd hw '{"debug": true}'简单的命令却寻觅最久，机缘巧合之下才发现... 使用时加入 debug 参数以获得更多信息。Step 2：加工处理有了数据源就好做了，定时采样加工处理再展示即可。小米路由器自带了一部分 MQTT 工具，因此使用 MQTT 将数据源转发给电脑处理并入库，再使用 Grafana 做展示。即使电脑不一直开机也没关系，通过配置，MQTT broker 可持久化暂存未处理消息。2.1 安装 Mosquitto broker 2.0小强系统自带了 MQTT client ，只需安装支持 MQTT v5 的 broker 即可。手动下载 ipk 文件，解压后获得可执行文件（.\data.tar.gz.\usr\sbin\mosquitto），将其上传到路由器中并注册为服务。如果 opkg 可用更佳。Cortex-A53: mosquitto-nossl_2.0.15-1_aarch64_cortex-a53.ipk更多： https://mirrors.aliyun.com/openwrt/releases/22.03-SNAPSHOT/packages/创建配置文件：/etc/mosquitto.conf:# log_dest file /tmp/log/mosquitto.log user root bind_address 0.0.0.0 allow_anonymous true/etc/init.d/mosquitto-2#!/bin/sh /etc/rc.common START=50 start() { /data/cz/bin/mosquitto-2 -c /etc/mosquitto.conf -d return 0 }2.2 定时采样创建 cron job 实现定时采样，可结合 sleep 实现分钟内采样。* * * * * ubus -S call trafficd hw '{"debug": true}' | mosquitto_pub -t 'home/router-stat' -q 2 -i client_pub -l -D publish user-property timestamp $(date +%s) >/dev/null 2>&12.3 编写程序解析数据并入库使用 Python 编写 MQTT 消费者程序，解析数据并写入数据库。如果是 Windows 可以使用 nssm 将其注册为服务。配置在 config.py 中。创建所需表：CREATE TABLE router_stat ( id INTEGER NOT NULL AUTO_INCREMENT, ip VARCHAR(15), mac CHAR(17), network ENUM('2.4G','5G','Ethernet','Unknown'), device VARCHAR(255), rx_rate INTEGER, tx_rate INTEGER, timestamp DATETIME, PRIMARY KEY (id) );2.4 安装 Grafana 并创建监控面板有了数据就可以用 Grafana 自由的创建监控面板了~比如创建一个 Time series 面板来查看上传下载总速度：select sum(rx_rate) as rx_rate, sum(tx_rate) as tx_rate, unix_timestamp(timestamp) as time from home.router_stat where $__timeFilter(timestamp) group by timestampScreenshot:

基于 NODE.JS 和 MQTT 开发的新一代高性能内网穿透工具
type: item
date: 2023-05-06T13:18:00+08:00
description: 介绍Anynat 是一款通用性极强的内网穿透工具,能够适应复杂的内网环境,在较差的网络条件下,仍然能够提供稳定可靠的数据传输.安装方式docker 容器化部署 Anynat(推荐)npm 安装方式(不推荐)*阅读本文档之前,会默认您有一定的网络知识,例如如何输入命令,怎样配置和解析域名等,文档不再赘述,自行搜索相关答案本文档仅提供 docker 部署方法,如果采用 npm 安装方式,则默认您具有一定的编程知识,需要自行摸索和解决 npm 相关问题*docker 容器化部署 AnynatAnynat 需要同时部署服务端和客户端服务端是指具有公网 IP 的服务器.例如阿里云,腾讯云的服务器,当然也有一些第三方免费的服务器,需要自行准备客户端是指你的内网服务器.例如你的 nas,台式电脑,笔记本或者其他系统平台,需要暴露自己本地的服务给外面的人访问就是客户,需要自行准备部署服务端 /客户端之前,建议准备一个干净的系统,只安装 docker 相关的软件依赖部署 docker 的教程文档( 服务端和客户端都需要安装好 docker ):ubuntu/linux/macos 教程:https://docs.docker.com/engine/install/ubuntu/windows 教程:https://docs.docker.com/desktop/install/windows-install/中文安装教程:https://zhuanlan.zhihu.com/p/441965046其他语言的 docker 安装方法自行搜索建议提前准备好一个域名,没有域名也没问题,有公网 IP 即可.需要提前将域名开启 HTTPS 并解析到您的服务器公网 IP,推荐使用 cloudflare 作为域名解析平台服务端和客户端共用同一份配置文件,如果配置对不上,则无法使用内网穿透服务,每次修改好配置需要重启 Anynat 容器 /重启系统点击阅读服务端安装方法点击阅读客户端安装方法你的下一个内网穿透工具何必是 ngrok,frp,Natapp 呢~~ 感谢支持???