news 2026/4/28 21:39:22

MQTT 消息推送详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MQTT 消息推送详解

#MQTT 消息推送详解

MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息协议,专为低带宽、高延迟或不稳定网络环境设计,非常适合物联网设备通信、移动消息推送等场景。

一、MQTT 核心概念

- **Broker(代理/服务器)**:消息的中转中心,负责接收客户端发布的消息并推送给订阅了对应主题的客户端。
- **Publisher(发布者)**:发送消息到某个主题的客户端。
- **Subscriber(订阅者)**:订阅一个或多个主题,接收该主题下的消息。
- **Topic(主题)**:消息的标签,支持层级结构,如 `sensor/temperature/room1`。
- **QoS(服务质量)**:
  - **0**:最多一次(可能丢失)
  - **1**:至少一次(保证到达,可能重复)
  - **2**:恰好一次(保证到达且不重复)
- **Will Message(遗愿消息)**:客户端异常断开时,Broker 自动发布的预设消息。
- **Retained Message(保留消息)**:Broker 为每个主题保留最后一条消息,新订阅者能立即收到。

二、MQTT 在 Android 上的实现(推送)

Android 端作为 MQTT 客户端,可以订阅主题接收实时推送,也可以发布数据到云端。

1. 添加依赖

推荐使用 **Eclipse Paho Android Service**(支持后台长连接、断线重连):

```groovy
dependencies {
    implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5'
    implementation 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'
}
```

如果目标 API ≥ 21(Android 5.0+),还需添加 `android:usesCleartextTraffic="true"`(若 broker 未使用 TLS)。

2. 在 AndroidManifest.xml 中声明服务和权限

```xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

<service android:name="org.eclipse.paho.android.service.MqttService" />
```

 3. 初始化 MQTT 客户端并连接

```kotlin
import org.eclipse.paho.android.service.MqttAndroidClient
import org.eclipse.paho.client.mqttv3.*

class MqttPushManager(context: Context, serverUri: String, clientId: String) {
    private val mqttClient = MqttAndroidClient(context, serverUri, clientId)
    private v

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

重载 AGV 控制怎么做?这篇 2025 论文把“载荷转移”讲透了

最新 AGV 控制论文解析&#xff1a;20 吨重载 AGV 怎么把“轨迹跟踪”和“车身稳定”一起管起来&#xff1f; 摘要 这次分析一篇 AGV 控制 方向的最新论文&#xff0c;而且和前面讲过的 Pure Pursuit 改进、外部视觉导航、托盘装卸 都不重复。本文选取的是 2025 年发表的论文 《…

作者头像 李华
网站建设 2026/4/15 2:04:12

从零部署Orbbec Gemini2:ROS2 Humble环境下的驱动配置与多话题数据解析

1. 环境准备与驱动安装 最近在做一个机器人项目&#xff0c;需要用到Orbbec Gemini2&#xff08;原DaBai DCL&#xff09;深度相机。折腾了两天才把ROS2驱动搞定&#xff0c;这里把完整过程记录下来&#xff0c;希望能帮到同样在配置这款相机的朋友。 1.1 系统要求检查 首先确认…

作者头像 李华
网站建设 2026/4/28 21:34:42

基于LSTM神经网络的锂电池SOH估算模型(NASA数据集)【MATLAB】

基于LSTM神经网络的锂电池SOH估算模型&#xff08;NASA数据集&#xff09; 在新能源与储能技术飞速发展的今天&#xff0c;锂离子电池的健康状态&#xff08;State of Health, SOH&#xff09;监测成为了电池管理系统&#xff08;BMS&#xff09;中至关重要的一环。准确估算SOH…

作者头像 李华
网站建设 2026/4/16 4:31:20

windows自带FTP服务搭建及防火墙设置

windows自带ftp服务搭建及防火墙设置前言一.ftp的主动模式与被动模式1.主动模式2.被动模式二.IIS安装FTP服务功能三.IIS添加FTP站点四.指定FTP的端口范围&#xff08;被动模式&#xff09;1.打开“FTP防火墙支持”2.设置FTP端口范围五.windows防火墙设置前言 FTP服务分为主动模…

作者头像 李华
网站建设 2026/4/15 1:54:29

WindowsCleaner终极指南:3步解决C盘爆红问题的免费神器

WindowsCleaner终极指南&#xff1a;3步解决C盘爆红问题的免费神器 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否经常遇到Windows系统C盘爆红的困扰&…

作者头像 李华