1. Paho介绍

Paho Java客户端是用Java编写的MQTT客户端库,用于开发在JVM或其他Java兼容平台(例如Android)上运 行的应用程序。

Paho不仅可以对接EMQ X Broker,还可以对接满足符合MQTT协议规范的消息代理服务端,目前Paho可以支 持到MQTT5.0以下版本。MQTT3.3.1协议版本基本能满足百分之九十多的接入场景。

Paho Java客户端提供了两个API:

  1. MqttAsyncClient提供了一个完全异步的API,其中活动的完成是通过注册的回调通知的。
  2. MqttClient是MqttAsyncClient周围的同步包装器,在这里,功能似乎与应用程序同步。

2. Paho实现消息收发

1. 找到上一期搭建的项目:emq-demo,添加坐标依赖



xml

复制代码

<dependency> <groupId>org.eclipse.paho</groupId> <artifactId>org.eclipse.paho.client.mqttv3</artifactId> <version>1.2.2</version> </dependency>

需要在application.yml中添加自定义的配置:



yaml

复制代码

mqtt: broker-url: tcp://192.168.10.200:1883 client-id: demo-client username: user password: 123456

同时需要创建属性配置类来加载该配置数据,创建:MqttProperties

使用 Eclipse Paho Java 连接到部署 

在本教程中您将学习在 Java 中使用 Eclipse Paho Java Client, 实现客户端与 MQTT 服务器的连接、订阅、收发消息、取消订阅等功能。

Eclipse Paho Java 是一个开源的 MQTT 客户端库,可用于在 Java 应用程序中实现 MQTT 通信协议的功能。它提供多个 API,简化 MQTT 协议的实现和使用,并支持多种 MQTT 版本。使用它,可以轻松创建 MQTT 客户端,发送或接收消息,处理连接、订阅和取消订阅等操作。Eclipse Paho Java 还提供一些高级功能,如自动重连和 SSL 安全连接等。它是一个功能强大且易于使用的 MQTT 客户端库,可帮助 Java 开发人员快速实现 MQTT 通信协议的功能。

前置准备 

获得 MQTT 服务器 

  • 连接地址: broker.emqx.io
  • TCP Port: 1883
  • SSL/TLS Port: 8883
  • WebSocket 端口: 8083
  • WebSocket TLS/SSL 端口: 8084
  • 您也可以自己创建部署,在部署概览下可以查看到连接相关的信息,请确保部署状态为运行中。使用 TCP 端口或 SSL/TLS 端口 测试连接到 MQTT 服务器。如果您是自己创建部署,请设置认证鉴权,在部署控制台认证鉴权 > 认证 中设置用户名和密码,用于连接验证。

安装 Maven 

本项目使用 Maven 进行项目的构建,请安装 Maven

初始化项目 

  1. 使用 Intellij IDEA 新建一个 Maven 项目,参考 Creating a Maven project
  2. 在 src/main/java 下创建包: io.emqx.mqtt

链接:

使用 Eclipse Paho Java 连接到部署 | EMQX Cloud 文档