MQTT Java 客户端

MQTT Java 客户端MQTTJava 客户端库 EclipsePahoJ 是用 Java 编写的 MQTT 客户端库 MQTTJavaClie 可用于 JVM 或其他 Java 兼容平台 例如 Android EclipsePahoJ 提供了 MqttAsyncCli 和 MqttClient 异步和同步 API 通过 Maven 安装 PahoJava 通过包管理工具 Maven 可以方便地安装 PahoJava 客户端库 截止目前最新版本安装如下

MQTT Java 客户端库

Eclipse Paho Java Client 是用 Java 编写的 MQTT 客户端库(MQTT Java Client),可用于 JVM 或其他 Java 兼容平台(例如Android)。

Eclipse Paho Java Client 提供了MqttAsyncClient 和 MqttClient 异步和同步 API。

通过 Maven 安装 Paho Java


通过包管理工具 Maven 可以方便地安装 Paho Java 客户端库,截止目前最新版本安装如下:

 
    
    
      org.eclipse.paho 
     
    
      org.eclipse.paho.client.mqttv3 
     
    
      1.2.2 
     
    

Paho Java 使用示例

 import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttConnectOptions; import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; public class App { public static void main(String[] args) { String subTopic = "testtopic/#"; String pubTopic = "testtopic/1"; String content = "Hello World"; int qos = 2; String broker = "tcp://127.0.0.1:1883"; String clientId = "mqtt_test"; MemoryPersistence persistence = new MemoryPersistence(); try { MqttClient client = new MqttClient(broker, clientId, persistence); // MQTT 连接选项 MqttConnectOptions connOpts = new MqttConnectOptions(); // connOpts.setUserName("mqtt_test"); // connOpts.setPassword("mqtt_test_password".toCharArray()); // 保留会话 connOpts.setCleanSession(true); // 设置回调 //client.setCallback(new PushCallback()); client.setCallback(new OnMessageCallback()); // 建立连接 System.out.println("Connecting to broker: " + broker); client.connect(connOpts); System.out.println("Connected"); System.out.println("Publishing message: " + content); // 订阅 client.subscribe(subTopic); // 消息发布所需参数 MqttMessage message = new MqttMessage(content.getBytes()); message.setQos(qos); client.publish(pubTopic, message); System.out.println("Message published"); /* client.disconnect(); System.out.println("Disconnected"); client.close(); System.exit(0);*/ } catch (MqttException me) { System.out.println("reason " + me.getReasonCode()); System.out.println("msg " + me.getMessage()); System.out.println("loc " + me.getLocalizedMessage()); System.out.println("cause " + me.getCause()); System.out.println("excep " + me); me.printStackTrace(); } } } 
回调消息处理类 OnMessageCallback.java
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken; import org.eclipse.paho.client.mqttv3.MqttCallback; import org.eclipse.paho.client.mqttv3.MqttMessage; public class OnMessageCallback implements MqttCallback { public void connectionLost(Throwable cause) { // 连接丢失后,一般在这里面进行重连 System.out.println("连接断开,可以做重连"); } public void messageArrived(String topic, MqttMessage message) throws Exception { // subscribe后得到的消息会执行到这里面 System.out.println("接收消息主题:" + topic); System.out.println("接收消息Qos:" + message.getQos()); System.out.println("接收消息内容:" + new String(message.getPayload())); } public void deliveryComplete(IMqttDeliveryToken token) { System.out.println("deliveryComplete---------" + token.isComplete()); } } 
Paho Java MQTT 5.0 支持

目前 Paho Java 还在适配 MQTT 5.0,尚未全面支持。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/203058.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午10:40
下一篇 2026年3月19日 下午10:40


相关推荐

  • activity和task_startactivity无效

    activity和task_startactivity无效我现在需要在点击listview的某个item的时候启动一个activity,因为我的listview不在activity中,所以为了简便我直接用context来调用activity,如下:Intentintent=newIntent(view.getContext(),BlogDetail.class);intent.putExtra(“blog_id”,blog.getId());…

    2022年10月6日
    3
  • 后盾人教程_最专业的后盾

    后盾人教程_最专业的后盾CSS3系列课程开课了,老铁快上车吧一引用CSS差别link标签:外部style标签:内联style属性:嵌入式注释:/**/结尾:分号,不能省略css导入其他css样式:@i

    2022年8月4日
    7
  • 微信支付服务商接入指引

    微信支付服务商接入指引微信支付服务商接入指引本文主要针对服务商下特约商户的小程序支付进行讲解 扫码支付 h5 支付大致流程都差不多 了解了小程序支付能够很快接入其他支付类型 说明 本文中的支付都是指在服务商模式下支付主体服务商 拥有支付开发能力的第三方提供商普通商户 拥有开发能力的商户特约商户 服务商下的商户一个商家主体可以在不同服务商下申请特约商户 每个服务商都会给商家主体在此服务商下一个特约商户号 普通商户

    2026年3月17日
    1
  • 【转】Jdom入门知识

    【转】Jdom入门知识

    2021年7月28日
    68
  • ResNet介绍

    ResNet介绍ResNet 介绍 1 简要概括 ResNet ResidualNeur 由微软研究院的 KaimingHe 等四名华人提出 通过使用 ResNetUnit 成功训练出了 152 层的神经网络 并在 ILSVRC2015 比赛中取得冠军 在 top5 上的错误率为 3 57 同时参数量比 VGGNet 低 效果非常突出 ResNet 的结构可以极快的加速神经网络的训练 模型的准确率也有比较大的提

    2026年3月26日
    3
  • VMware 虚拟机如何连接网络「建议收藏」

    VMware 虚拟机如何连接网络「建议收藏」ps:本教程是针对虚拟机NAT模式连接网络一、首先查看自己的虚拟机服务有没有开启,选择电脑里面的服务查看;1.计算机点击右键选择管理2.进入管理选择VM开头的服务如果没有开启的话就右键开启二、虚拟机服务开启后就查看本地网络虚拟机的网卡启动没有1.电脑右下角网络标志右键进入网络和共享中心2.点击更改适配器,查看虚拟机的虚拟网卡启动没有,没有启动的话右键点击启动3.网卡开启后设置ip地址

    2022年4月20日
    2.8K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号