基于:Eclipse paho 的MQTT Java客户端实现数据的发送和接收

【mqtt】Java实现mqtt的订阅与发布 maven引用 <dependency> <groupId>org.eclipse.paho</groupId> <artifactId>org.eclipse.paho.client.mqttv3</artifactId> <version>1.1.0</version> </dependency> mqtt订阅 完整代码如下: import com.cn.common.ut 阅读详情

MQTT(MQ Telemetry Transport)是IBM开发的一种网络应用层的协议

使用场景:

1、不可靠、网络带宽小的网络

2、运行的设备CPU、内存非常有限


特点:

1、基于发布/订阅模型的协议

2、他是二进制协议,二进制的特点就是紧凑、占用空间小。他的协议头只有2个字节

3、提供了三种消息可能性保障:最多一次 0、最少一次 1、只有一次 2

maven依赖

[html]  view plain  copy
  1. <dependency>  
  2.     <groupId>org.eclipse.paho</groupId>  
  3.     <artifactId>org.eclipse.paho.client.mqttv3</artifactId>  
  4.     <version>1.1.1</version>  
  5. </dependency>  

发送消息示例

[java]  view plain  copy
  1. import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;  
  2. import org.eclipse.paho.client.mqttv3.MqttCallback;  
  3. import org.eclipse.paho.client.mqttv3.MqttClient;  
  4. import org.eclipse.paho.client.mqttv3.MqttConnectOptions;  
  5. import org.eclipse.paho.client.mqttv3.MqttException;  
  6. import org.eclipse.paho.client.mqttv3.MqttMessage;  
  7. import org.eclipse.paho.client.mqttv3.MqttPersistenceException;  
  8. import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;  
  9.   
  10. /** 
  11.  * 发送数据到mqtt服务器 
  12.  * @author:涂有 
  13.  * @date 2017年8月16日 下午11:15:22 
  14.  */  
  15. public class PubMsg {  
  16.     private static int qos = 2; //只有一次  
  17.     private static String broker = "tcp://10.100.124.206:1883";  
  18.     private static String userName = "tuyou";  
  19.     private static String passWord = "tuyou";  
  20.   
  21.       
  22.     private static MqttClient connect(String clientId,String userName,  
  23.             String password) throws MqttException {  
  24.         MemoryPersistence persistence = new MemoryPersistence();  
  25.         MqttConnectOptions connOpts = new MqttConnectOptions();  
  26.         connOpts.setCleanSession(true);  
  27.         connOpts.setUserName(userName);  
  28.         connOpts.setPassword(password.toCharArray());  
  29.         connOpts.setConnectionTimeout(10);  
  30.         connOpts.setKeepAliveInterval(20);  
  31. //      String[] uris = {"tcp://10.100.124.206:1883","tcp://10.100.124.207:1883"};  
  32. //      connOpts.setServerURIs(uris);  //起到负载均衡和高可用的作用  
  33.         MqttClient mqttClient = new MqttClient(broker, clientId, persistence);  
  34.         mqttClient.setCallback(new PushCallback("test"));  
  35.         mqttClient.connect(connOpts);  
  36.         return mqttClient;  
  37.     }  
  38.   
  39.     private static void pub(MqttClient sampleClient, String msg,String topic)   
  40.             throws MqttPersistenceException, MqttException {  
  41.         MqttMessage message = new MqttMessage("ertwersdfas".getBytes());  
  42.         message.setQos(qos);  
  43.         message.setRetained(false);  
  44.         sampleClient.publish(topic, message);  
  45.     }  
  46.       
  47.     private static void publish(String str,String clientId,String topic) throws MqttException{  
  48.         MqttClient mqttClient = connect(clientId,userName,passWord);  
  49.   
  50.         if (mqttClient != null) {  
  51.             pub(mqttClient, str, topic);  
  52.             System.out.println("pub-->" + str);  
  53.         }  
  54.   
  55.         if (mqttClient != null) {  
  56.             mqttClient.disconnect();  
  57.         }  
  58.     }  
  59.   
  60.     public static void main(String[] args) throws MqttException {  
  61.         publish("message content","client-id-0","$share/edge/server/public/a");  
  62.     }  
  63. }  
  64.   
  65. class PushCallback implements MqttCallback {  
  66.     private String threadId;  
  67.     public PushCallback(String threadId){  
  68.         this.threadId = threadId;  
  69.     }  
  70.       
  71.     public void connectionLost(Throwable cause) {  
  72.           
  73.     }  
  74.   
  75.     public void deliveryComplete(IMqttDeliveryToken token) {  
  76. //       System.out.println("deliveryComplete---------" + token.isComplete());  
  77.     }  
  78.   
  79.     public void messageArrived(String topic, MqttMessage message) throws Exception {  
  80.         String msg = new String(message.getPayload());  
  81.         System.out.println(threadId + " " + msg);  
  82.     }  
  83. }  


消费消息示例

[java]  view plain  copy
  1. import org.eclipse.paho.client.mqttv3.MqttClient;  
  2. import org.eclipse.paho.client.mqttv3.MqttConnectOptions;  
  3. import org.eclipse.paho.client.mqttv3.MqttException;  
  4. import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;  
  5.   
  6. public class SubMsg {  
  7.   
  8. //   private static String topic = "$share/testgroup/wyptest1";  
  9. //   private static String topic = "$queue/wyptest1";  
  10. //   private static String topic = "wyptest1";  
  11.      private static int qos = 2;  
  12.      private static String broker = "tcp://10.100.124.207:1883";  
  13.      private static String userName = "tuyou";  
  14.      private static String passWord = "tuyou";  
  15.       
  16.   
  17.      private static MqttClient connect(String clientId) throws MqttException{  
  18.          MemoryPersistence persistence = new MemoryPersistence();  
  19.          MqttConnectOptions connOpts = new MqttConnectOptions();  
  20. //       String[] uris = {"tcp://10.100.124.206:1883","tcp://10.100.124.206:1883"};  
  21.          connOpts.setCleanSession(false);  
  22.          connOpts.setUserName(userName);  
  23.          connOpts.setPassword(passWord.toCharArray());  
  24.          connOpts.setConnectionTimeout(10);  
  25.          connOpts.setKeepAliveInterval(20);  
  26. //         connOpts.setServerURIs(uris);  
  27. //         connOpts.setWill(topic, "close".getBytes(), 2, true);  
  28.          MqttClient mqttClient = new MqttClient(broker, clientId, persistence);  
  29.          mqttClient.connect(connOpts);  
  30.          return mqttClient;  
  31.      }  
  32.        
  33.      public static void sub(MqttClient mqttClient,String topic) throws MqttException{  
  34.          int[] Qos  = {qos};  
  35.          String[] topics = {topic};  
  36.          mqttClient.subscribe(topics, Qos);  
  37.      }  
  38.        
  39.        
  40.     private static void runsub(String clientId, String topic) throws MqttException{  
  41.         MqttClient mqttClient = connect(clientId);  
  42.         if(mqttClient != null){  
  43.             sub(mqttClient,topic);  
  44.         }  
  45.     }  
  46.     public static void main(String[] args) throws MqttException{  
  47.           
  48.         runsub("client-id-1", "$share/testgroupa/edge/server/private/+");  
  49.     }  
  50. }  
使用eclipse paho在java端实现MQTT消息的收发(客户端与服务端实例) 一、MQTT(消息队列)简介MQTT(MQ Telemetry Transport)是IBM开发的一种网络应用层的协议,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。 常用的有eclipse paho、activeMQ、阿里MQTT和其他的实现,本实例使用paho1、使用场景:1、不 阅读详情

相关推荐

org.eclipse.paho.client.mqttv3 源码解析(一) 发送

这货是什么,这货能做消息推送,和其他手机端push一样有自己的协议体和算法讲究 首先看下例子使用: public void testPubSub() throws Exception { String methodName = Utility.getMethodName(); LoggingUtilities.banner(log, cclass, methodName); IMqttClient client = null; try { String top...

码灵的博客 3660

mqtt等待来自服务器响应超时,org.eclipse.paho.client mqtt客户端连接超时

客户端订阅mqtt 的时候 显示超时。第二次重起服务可能就好了,但是可能会丢消息。报错如下org.eclipse.paho.client.mqttv3.MqttException: 等待来自服务器的响应时超时at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.j...

weixin_39926943的博客 9925

springboot+阿里云物联网教程

springboot+aliyun mqtt物联网教程,springboot+阿里云物联网教程,org.springframework.integration.mqtt.inbound.MqttPahoMessageDrivenChannelAdapter -Error connecting or subscribing to,org.eclipse.paho.client.mqttv3.MqttException: 无效客户机标识,等待来自服务器的响应时超时

renkai721的专栏 961

org.eclipse.paho.client.mqttv3.MqttException: 等待来自服务器的响应时超时Error connecting or subscribing to [h

报错原因,由于服务重启导致IP变了,mqtt服务校验出现问题,在docker配置中关闭校验或者重新配置新的校验地址。直接部署服务应该也有相关配置。mqtt报错,无法订阅topic。

qq_37550867的博客 9450

使用Eclipse Paho进行MQTT协议测试与应用

本文还有配套的精品资源,点击获取 简介:MQTT是一种常用于物联网通信的轻量级消息协议。本课程重点讲解如何利用Eclipse Paho库,这是一个提供多语言客户端库的开源项目,作为MQTT测试工具连接到mosquitto服务器进行消息发布与订阅。通过Eclipse IDE集成Paho工具,开发者可以进行MQTT应用程序的测试和调试。包括使用 paho.exe ...

weixin_35749545的博客 2177

AlphaFold3实战:用它预测抗体结构,我的CDR H3环RMSD降到了2Å以内

本文详细介绍了如何利用AlphaFold3(AF3)高精度预测抗体结构,特别是CDR H3环的建模,其RMSD可降至2Å以内。通过实战演示从序列输入到结构优化的全流程,包括参数配置、置信度指标解读及结果分析,帮助研究人员快速掌握AF3在抗体药物研发中的应用。

weixin_29224529的博客 187

MQTT Java客户端Eclipse paho实现数据的发送和接收

MQTT(MQ Telemetry Transport)是IBM开发的一种网络应用层的协议 使用场景: 1、不可靠、网络带宽小的网络 2、运行的设备CPU、内存非常有限   特点: 1、基于发布/订阅模型的协议 2、他是二进制协议,二进制的特点就是紧凑、占用空间小。他的协议头只有2个字节 3、提供了三种消息可能性保障:最多一次 0、最少一次 1、只有一次 2   maven依赖...

Code changes the world! 3万+

Stanford CS230深度学习(一)

斯坦福CS230可以作为深度学习的入门课,最近我也在跟着看视频、完成编程作业。首先列出使用的资源链接,然后给出第一课的理解和编程作业的代码。 所有资料如下: 一、课程连接: b站课堂讲授版:Stanford CS230(吴恩达 深度学习 Deep Learning | Autumn 2018)(中英双字幕) (一共10个视频,每周一个,但是每个视频对应下面的配套视频较多) Coursera配套视...

weixin_44750583的博客 2381

MQTT的简单Demo

MQTT是物联网收发数据的一种协议 Elipse Paho是一个开源项目实现了MQTT的Clinent可以方便直接操纵数据的上传和下载 The Eclipse Paho project provides open-source client implementations of MQTT and MQTT-SN messaging protocols aimed at new, existin...

weixin_34304013的博客 965

【UE4】Hierarchical Instanced Static Mesh——一种速度优于Spawn的实例化物体组件

最近需要在场景中实例出很多个相同的模型,位置也很有规律,并且要对它的位置信息进行更新。 但是一个个拖进去实在太麻烦,就发现了Spawn Actor这个蓝图方法,可以实例一个蓝图类在场景中。 但是由于数量较大,实例化的速度太慢,这时发现了一个神奇的组件——Hierarchical Instanced Static Mesh。 新建一个蓝图类,添加该组件,在细节里添加你要实例化的模型对象。 ...

ColorGalaxy 1万+

【Unity-UGUI控件全面解析】| Layout自动布局组件详解

UGUI中有个自动布局组件Auto Layout,主要包含下面几个模块(点击可进入官方文档下查看描述): 自动布局 布局元素 (Layout Element) 水平布局组 (Horizontal Layout Group) 垂直布局组 (Vertical Layout Group) 网格布局组 (Grid Layout Group) 内容大小适配器 (Content Size Fitter) 自动布局系统 基于布局元素和布局控制器的概念。一个布局元素是具有矩形变换以及其他可选组件的游戏对象。布局元素对自身

努力前行,总会成为自己心中的那道光 2万+

Java连接mqtt服务器(发送、订阅)

1.模拟客户端接收消息 import java.util.concurrent.ScheduledExecutorService; import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttConnectOptions; import org.eclipse.paho...

云下的你 2万+

【OpenClaw从入门到精通】第37篇:教育“龙虾”进化论——从答疑助教到全流程智能教学系统(2026实测版)

2026年,教育AI已从被动答疑的L1级进化至主动教学的L4级,清华开源的OpenMAIC平台更是打破传统慕课局限,实现互动式AI课堂。本文基于天津工业大学、西北农林科技大学等高校的真实应用案例,结合腾讯云、天翼云的实操指南,详解OpenClaw在教育场景的四层进化路径。核心内容包括:L1-L4级教育自动化架构解析、清华OpenMAIC L4级AI课堂深度拆解、从零搭建智能答疑(QQ群机器人)+作业批改+学情分析全流程系统,以及高校网络安全合规部署方案。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 778

Eclipse paho实现的MQTT Java客户端

Eclipse paho是eclipse基金会下面的一个开源项目,基于MQTT协议的客户端,用多种语言的实现,什么是MQTT协议?不废话,自己百度去 这几年的很火的物联网多是基于这个协议来通信的。 Eclipse paho客户端支持的语言: 这里是我用java swing做的一个MQTT通信客户端,实现了连接MQTT服务器 订阅-发送消息 MQTT服务器搭建在树莓派3b上 使用

文博那些事儿 1万+

DISK配置服务器软RAID工作任务(RAID1+BITLOCKER)-winserver4

DISK配置服务器软RAID工作任务(RAID1+BITLOCKER)-winserver4

新时代先锋的博客 7299

uniapp(微信小程序) - 实现uniapp小程序电子签名板,横屏手写姓名签名专用写字画板,客户专用签字板,手写签名签字画板组件,手写签名,(详细运行示例,一键复制开箱即用)

uniapp实现微信小程序的电子签名效果,uniapp微信小程序 电子签名 写字板,用uniapp实现微信小程序的电子签名,uniapp微信小程序canvans实现手写签名,记录一个uniapp写的小程序的手写板,横屏,用于签名,unniapp实现电子签名,uniapp怎么做横屏的手写签名,uniapp如何实现签字板,uniapp小程序平台下怎么做电子签名板组件,uniapp电子签名插件,uniapp最好用的电子写字板插件组件源码,实现uniapp 手写签名功能,手写板、签字板,uni-app插件市场最好的

✅ 精选推荐文章 1万+

Java实战——使用Eclipse Paho库发送MQTT消息

通过本文的示例,你已经掌握了如何使用Java的Eclipse Paho库实现MQTT消息的发送功能。这个实用的例子不仅适合初学者快速入门,也可以作为企业级项目中消息发布模块的参考模板。

Takumilove的博客 2541

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

JAVA中MQTT的两种实现方式:Spring Integration 和Eclipse Paho

Spring Integration提供入站和出站通道适配器以支持消息队列遥测传输(MQTT)协议。当前实现使用Eclipse Paho MQTT Client库。从6.5版开始,org. eclipse.paho:org.eclipse.paho.client.mqttv3依赖项是可选依赖项,因此必须明确包含在MQTT v3支持的目标项目中。使用DefaultMqttPahoClientFactory实现两个适配器的配置。有关配置选项的更多信息,请参阅Paho留档。

深圳市多克创新科技有限公司 1459

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Eclipse paho 实现的基于MqttAsyncClient类的 异步Java 客户端

package com.wenbo.mqtt; import java.awt.Color; import java.awt.EventQueue; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JForma.

Jerry_liu20080504的专栏 4118

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

eclipse paho java实现mqtt消息的发送与订阅

eclipse paho java实现mqtt消息的发送与订阅1.mqtt定义2.java代码实现2.1发送端2.2客户端 1.mqtt定义 mqtt是什么这里就不做解释了,自行百度。 2.java代码实现 2.1发送端 2.2客户端 public class ClientMQTT { private static Logger logger = LoggerFactory....

qq_16053575的博客 3521
上一篇: 驱动海量大数据实时多维分析,优酷为什么会选择Druid?
下一篇: mosquitto的TLS功能: (使用paho.mqtt.golang和JAVA版实现客户端)
大树叶
博客等级 码龄12年 1171粉丝 664原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值