当前位置:网站首页 > 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.png

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

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

版权声明: 本文为 EMQ 原创,转载请注明出处。

原文链接:https://www.emqx.com/zh/blog/how-to-use-mqtt-in-java

版权声明


相关文章:

  • java mysql教程基于2024-12-23 22:10:06
  • java jdbc编程教程2024-12-23 22:10:06
  • java 教程图片2024-12-23 22:10:06
  • java视频教程看不懂2024-12-23 22:10:06
  • java教程微信2024-12-23 22:10:06
  • java中图片打散教程2024-12-23 22:10:06
  • java实例教程2024-12-23 22:10:06
  • java2024教程2024-12-23 22:10:06
  • 跳搭教程java2024-12-23 22:10:06
  • java报表视频教程2024-12-23 22:10:06