当前位置:网站首页 > Java教程 > 正文

mqtt java详细教程



MQTT 是一种基于发布/订阅模式的 轻量级物联网消息传输协议 ,可在严重受限的硬件设备和低带宽、高延迟的网络上实现稳定传输。它凭借简单易实现、支持 QoS、报文小等特点,占据了物联网协议的半壁江山。

本文主要介绍如何在 Java 项目中使用 MQTT,实现客户端与服务器的连接、订阅和收发消息等功能。

本文的开发环境为:

  • 构建工具:Maven
  • IDE:IntelliJ IDEA
  • Java 版本:JDK 1.8.0

本文将使用 Eclipse Paho Java Client 作为客户端,该客户端是 Java 语言中使用最为广泛的 MQTT 客户端库。

添加以下依赖到项目 pom.xml 文件中。

 

本文将使用 EMQX 提供的 免费公共 MQTT 服务器,该服务基于 EMQX 的 MQTT 云平台 创建。服务器接入信息如下:

  • Broker: broker.emqx.io(中国用户可以使用 broker-cn.emqx.io
  • TCP Port: 1883
  • SSL/TLS Port: 8883

设置 MQTT Broker 基本连接参数,用户名、密码为非必选参数。

 

然后创建 MQTT 客户端并连接。

 

说明

  • MqttClient: 同步调用客户端,使用阻塞方法通信。
  • MqttClientPersistence: 代表一个持久的数据存储,用于在传输过程中存储出站和入站的信息,使其能够传递到指定的 QoS。
  • MqttConnectOptions: 连接选项,用于指定连接的参数,下面列举一些常见的方法。
    • setUserName: 设置用户名
    • setPassword: 设置密码
    • setCleanSession: 设置是否清除会话
    • setKeepAliveInterval: 设置心跳间隔
    • setConnectionTimeout: 设置连接超时时间
    • setAutomaticReconnect: 设置是否自动重连

如果要使用自签名证书进行 TLS/SSL 连接,需添加 bcpkix-jdk15on 到 pom.xml 文件。

 

然后使用如下代码创建 文件。

 

参照如下设置 。

 

创建一个发布客户端类 ,该类将发布一条 消息至主题 。

 

创建一个订阅客户端类 ,该类将订阅主题 。

 

MqttCallback 说明:

  • connectionLost(Throwable cause): 连接丢失时被调用
  • messageArrived(String topic, MqttMessage message): 接收到消息时被调用
  • deliveryComplete(IMqttDeliveryToken token): 消息发送完成时被调用

接下来运行 ,订阅 主题。 然后运行 ,发布消息到 主题。 我们将会看到发布端成功发布消息,同时订阅端接收到消息。

Java MQTT

至此,我们完成了在 Java 中使用 Paho Java Client 来作为 MQTT 客户端连接到 公共 MQTT 服务器,并实现了测试客户端与 MQTT 服务器的连接、消息发布和订阅。

完整代码请见:https://github.com/emqx/MQTT-Client-Examples/tree/master/mqtt-client-Java。

接下来,读者可访问 EMQ 提供的 MQTT 入门与进阶系列文章学习 MQTT 主题及通配符、保留消息、遗嘱消息等相关概念,探索 MQTT 的更多高级应用,开启 MQTT 应用及服务开发。

版权声明


相关文章:

  • JAVA分销系统教程2024-12-19 21:18:04
  • java图形开发教程2024-12-19 21:18:04
  • java数组操作教程2024-12-19 21:18:04
  • 软件 java教程2024-12-19 21:18:04
  • java中calendar教程2024-12-19 21:18:04
  • java教程设计教程2024-12-19 21:18:04
  • 大数据代码教程java2024-12-19 21:18:04
  • java eclipse教程2024-12-19 21:18:04
  • 马士兵java 教程2024-12-19 21:18:04
  • java robot类 教程2024-12-19 21:18:04