安装Mosquitto
用于MQTT私有云架设的服务器端和客户端的核心代码。 稳定支持断线自动重连。 公网服务器内网内网服务器或者租赁腾讯轻服务器均可架设。 实现MQTT通信和数据存储。最近在折腾MQTT私有云的架设感觉这玩意儿挺有意思的。MQTTMessage Queuing Telemetry Transport是一种轻量级的发布/订阅消息传输协议特别适合物联网设备之间的通信。今天就来聊聊如何用核心代码搭建一个支持断线自动重连的MQTT服务器和客户端。服务器端首先我们需要一个MQTT broker。这里我选择了Eclipse Mosquitto它是一个开源的MQTT broker支持多种平台。sudo apt-get install mosquitto mosquitto-clients安装完成后启动Mosquitto服务sudo systemctl start mosquittoMosquitto默认监听1883端口你可以通过修改配置文件/etc/mosquitto/mosquitto.conf来调整端口或其他设置。客户端接下来是客户端部分。这里我用Python编写了一个简单的MQTT客户端支持断线自动重连。import paho.mqtt.client as mqtt import time def on_connect(client, userdata, flags, rc): if rc 0: print(Connected successfully) else: print(fConnection failed with code {rc}) def on_disconnect(client, userdata, rc): print(Disconnected, attempting to reconnect...) while True: try: client.reconnect() break except: time.sleep(5) client mqtt.Client() client.on_connect on_connect client.on_disconnect on_disconnect client.connect(your.broker.address, 1883, 60) client.loop_start() try: while True: client.publish(test/topic, Hello MQTT) time.sleep(10) except KeyboardInterrupt: client.loop_stop() client.disconnect()这段代码首先定义了两个回调函数onconnect和ondisconnect分别处理连接成功和断开连接的情况。on_disconnect中实现了断线自动重连的逻辑。用于MQTT私有云架设的服务器端和客户端的核心代码。 稳定支持断线自动重连。 公网服务器内网内网服务器或者租赁腾讯轻服务器均可架设。 实现MQTT通信和数据存储。client.connect方法用于连接到MQTT brokerclient.loop_start()启动一个后台线程来处理网络流量。client.publish用于发布消息到指定的主题。数据存储MQTT broker本身并不负责数据存储但我们可以通过订阅主题并将消息存储到数据库或其他存储系统中来实现数据持久化。import paho.mqtt.client as mqtt import sqlite3 def on_message(client, userdata, msg): conn sqlite3.connect(mqtt_data.db) c conn.cursor() c.execute(INSERT INTO messages (topic, payload) VALUES (?, ?), (msg.topic, msg.payload.decode())) conn.commit() conn.close() client mqtt.Client() client.on_message on_message client.connect(your.broker.address, 1883, 60) client.subscribe(test/topic) client.loop_forever()这段代码在on_message回调函数中将接收到的消息存储到SQLite数据库中。首先连接到数据库然后执行插入操作最后提交事务并关闭连接。部署你可以选择在公网服务器、内网服务器或者租赁腾讯轻服务器上部署这个MQTT系统。公网服务器适合需要远程访问的场景内网服务器则适合局域网内的设备通信。腾讯轻服务器是个不错的选择价格便宜性能也够用。总结MQTT协议在物联网领域有着广泛的应用通过简单的代码就可以实现一个支持断线自动重连的MQTT系统。希望这篇文章能帮到你如果你有任何问题欢迎留言讨论。

相关新闻

【计算机毕设】基于改进高斯混合模型的图割算法

【计算机毕设】基于改进高斯混合模型的图割算法

💟博主:程序员小俊:CSDN作者、博客专家、全栈领域优质创作者 💟专注于计算机毕业设计,大数据、深度学习、Java、小程序、python、安卓等技术领域 📲文章末尾获取源码数据库 🌈还有大家在毕设选题…

2026/7/3 15:36:05 阅读更多 →
即时通讯项目--UserService

即时通讯项目--UserService

功能设计功能模块示意图接口实现流程1. 用户注册从请求中取出昵称和密码;检查昵称是否合法(仅包含字母、数字、连字符-、下划线_,长度限制 3~15 位);检查密码是否合法(仅包含字母、数字,长度限制…

2026/7/3 15:36:07 阅读更多 →
66、SPI驱动ADXL345加速度计

66、SPI驱动ADXL345加速度计

SPI驱动ADXL345加速度计 一、SPI协议核心原理 SPI是全双工、同步、主从式的通信总线,想要驱动外设,先吃透物理层连线和时序规则。 1.1 物理层:四线制连接逻辑 SPI标准四线制的每根线都有明确分工,IMX6ULL(主设备&#…

2026/7/3 15:36:07 阅读更多 →

最新新闻

Python xhs库终极指南:5分钟上手小红书数据采集完整教程

Python xhs库终极指南:5分钟上手小红书数据采集完整教程

Python xhs库终极指南:5分钟上手小红书数据采集完整教程 【免费下载链接】xhs 基于小红书 Web 端进行的请求封装。https://reajason.github.io/xhs/ 项目地址: https://gitcode.com/gh_mirrors/xh/xhs 小红书作为中国最受欢迎的社交电商平台,每天…

2026/7/5 7:20:04 阅读更多 →
YOLOv11 改进 - SPPF模块   替代SPP,FFocal Modulation焦点调制:即插即用轻量设计优化全局语义捕获

YOLOv11 改进 - SPPF模块 替代SPP,FFocal Modulation焦点调制:即插即用轻量设计优化全局语义捕获

前言 本文介绍了焦点调制网络(FocalNets)及其在YOLOv11中的结合应用。FocalNets完全用焦点调制模块替代自注意力,该模块由焦点上下文化、门控聚合和逐元素仿射变换组成,能有效建模视觉中的标记交互。它通过局部特征聚焦、全局信息…

2026/7/5 7:16:03 阅读更多 →
Windows Cleaner终极指南:免费开源工具一键解决C盘爆红和系统卡顿问题

Windows Cleaner终极指南:免费开源工具一键解决C盘爆红和系统卡顿问题

Windows Cleaner终极指南:免费开源工具一键解决C盘爆红和系统卡顿问题 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否经常遇到Windows系统C盘空…

2026/7/5 7:14:02 阅读更多 →
低成本工业控制器按键方案:74HC32与PIC32MZ实现多功能控制

低成本工业控制器按键方案:74HC32与PIC32MZ实现多功能控制

1. 项目背景与核心思路最近在工业控制器项目中遇到一个有趣的挑战:如何在有限的硬件资源下实现多功能控制?传统方案要么需要增加物理按键数量(导致面板臃肿),要么采用昂贵的编码器(成本飙升)。经…

2026/7/5 7:12:02 阅读更多 →
Brook:跨平台可编程网络工具,Star 1.5 万

Brook:跨平台可编程网络工具,Star 1.5 万

文章目录Brook:跨平台可编程网络工具,Star 1.5 万为什么这工具能拿到 1.5 万 Star?1. 跨平台适配彻底2. 长期维护,社区活跃可编程是核心卖点适合谁用?Brook:跨平台可编程网络工具,Star 1.5 万 …

2026/7/5 7:12:02 阅读更多 →
ICM-42688-P与PIC18F67K40在工业自动化中的高性能运动检测方案

ICM-42688-P与PIC18F67K40在工业自动化中的高性能运动检测方案

1. ICM-42688-P与PIC18F67K40的黄金组合解析在工业自动化和机器人控制领域,传感器与微控制器的协同工作能力直接决定了系统的响应速度和测量精度。ICM-42688-P作为TDK InvenSense推出的6轴MEMS运动跟踪传感器,与Microchip的PIC18F67K40微控制器形成的解决…

2026/7/5 7:08:01 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻