RabbitMQ开启MQTT协议支持

1)RabbitMQ启用MQTT插件

root@mq:/# rabbitmq-plugins enable rabbitmq_mqtt
Enabling plugins on node rabbit@mq:
rabbitmq_mqtt
The following plugins have been configured:rabbitmq_managementrabbitmq_management_agentrabbitmq_mqttrabbitmq_web_dispatch
Applying plugin configuration to rabbit@mq...
The following plugins have been enabled:rabbitmq_mqttstarted 1 plugins.
root@mq:/# rabbitmq-plugins enable rabbitmq_web_mqtt
Enabling plugins on node rabbit@mq:
rabbitmq_web_mqtt
The following plugins have been configured:rabbitmq_managementrabbitmq_management_agentrabbitmq_mqttrabbitmq_web_dispatchrabbitmq_web_mqtt
Applying plugin configuration to rabbit@mq...
The following plugins have been enabled:rabbitmq_web_mqttstarted 1 plugins.
root@mq:/# 

2)RabbitMQ管理控制台查看
如果插件启动成功,rabbitmq会打开1883和15675端口:
在这里插入图片描述

3)用MQTTX工具测试
在这里插入图片描述
4)用eclipse paho客户端测试
添加依赖

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

收发消息测试

@RestController
public class DemoController {@GetMapping("/publish")public String publish() throws MqttException {MqttClientPersistence persistence = new MemoryPersistence();;//内存持久化MqttClient client = new MqttClient("tcp://192.168.137.138:1883", "abc", persistence);//连接选项中定义用户名密码和其它配置MqttConnectOptions options = new MqttConnectOptions();options.setCleanSession(true);//参数为true表示清除缓存,也就是非持久化订阅者,这个时候只要参数设为true,一定是非持久化订阅者。而参数设为false时,表示服务器保留客户端的连接记录options.setAutomaticReconnect(true);//是否自动重连options.setConnectionTimeout(30);//连接超时时间  秒options.setKeepAliveInterval(10);//连接保持检查周期  秒options.setMqttVersion(MqttConnectOptions.MQTT_VERSION_3_1_1); //版本options.setUserName("xjs1919");options.setPassword("123321".toCharArray());// client.setManualAcks(true);client.connect(options);//连接//订阅topicclient.subscribe("demoTopic", 2);// 设置回调,将来收到消息的时候会被回调client.setCallback(new MqttCallbackExtended() {@Overridepublic void connectComplete(boolean reconnect, String serverURI) {System.out.println("连接完成");}@Overridepublic void connectionLost(Throwable cause) {System.out.println("连接丢失");}@Overridepublic void messageArrived(String topic, MqttMessage message) throws Exception {System.out.println("收到消息,topic:"+topic + ", msg:" + new String(message.getPayload()));//client.messageArrivedComplete(message.getId(),message.getQos());}@Overridepublic void deliveryComplete(IMqttDeliveryToken token) {// Qos0: 当消息发送出去就回调// Qos1: 当发送者收到了puback的时候的回调// Qos2: 当发送者收到了pubcomp的时候的回调System.out.println("消息发送完成");}});client.publish("demoTopic", "hello,这是一个测试消息!".getBytes(), 2, false);return "ok";}}

参考文章:
https://www.cnblogs.com/motion/p/14974024.html
https://blog.csdn.net/u013615903/article/details/131395264

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2803074.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Linux理解

VMware安装Linux安装 目录 VMware安装Linux安装 1.1 什么是Linux 1.2 为什么要学Linux 1.3 学完Linux能干什么 2.1 主流操作系统 2.2 Linux系统版本 VMware安装Linux安装 1.1 什么是Linux Linux是一套免费使用和自由传播的操作系统。 1.2 为什么要学Linux 1). 企业用人…

unity Aaimation Rigging使用多个约束导致部分约束失去作用

在应用多个约束时&#xff0c;在Hierarchy的顺序可能会影响最终的效果。例如先应用了Aim Constraint&#xff0c;然后再应用Two Bone Constraint&#xff0c;可能会导致Two Bone Constraint受到Aim Constraint的影响而失效。因此&#xff0c;在使用多个约束时&#xff0c;应该仔…

【Java程序设计】【C00293】基于Springboot的藏区特产销售平台(有论文)

基于Springboot的藏区特产销售平台&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的藏区特产销售平台 本系统分为系统功能模块以及管理员功能模块。 系统功能模块&#xff1a;进入藏区特产销售平台页面中可以查看…

【Git】:远程仓库操作

远程仓库操作 一.理解版本控制系统二.远程仓库1.克隆2.Push操作3.fetch操作4. .gitnore文件 一.理解版本控制系统 我们⽬前所说的所有内容&#xff08;⼯作区&#xff0c;暂存区&#xff0c;版本库等等&#xff09;&#xff0c;都是在本地&#xff01;也就是在你的笔记本或者计…

前端输入框校验限制不能输入中文

一般我们在做表单的时候都会有表单校验,通常都是用element提供的表单验证的功能&#xff0c;只需要通过 rules 属性传入约定的验证规则&#xff0c;如下面这样 rules: {userName: [{validator: checkUsername,trigger: "blur",},{ validator: this.checkData, trigge…

navicat导出数据库表结构信息

需求阐述 要求导出某一数据库表中的所有表的结构&#xff0c;汇总成一个word 准备工作 拿到所有表名&#xff0c;在navicat中执行sql语句&#xff1a;show tables;然后点击导出结果&#xff0c;选择excel格式进行导出。 拿到该数据库所有表名后&#xff0c;在navicat中执行如…

动态SLAM:基于ORB-SLAM2与YOLOv8剔除动态特征点(三种方法)

基于ORB-SLAM2与YOLOv8剔除动态特征点(三种方法) 写上篇文章时测试过程比较乱&#xff0c;写的时候有些地方有点失误&#xff0c;所以重新写了这篇 本文内容均在RGB-D环境下进行程序测试 本文涉及到的动态特征点剔除速度均是以https://cvg.cit.tum.de/data/datasets/rgbd-dat…

SpringCloud(15)之SpringCloud Gateway

一、Spring Cloud Gateway介绍 Spring Cloud Gateway 是Spring Cloud团队的一个全新项目&#xff0c;基于Spring 5.0、SpringBoot2.0、 Project Reactor 等技术开发的网关。旨在为微服务架构提供一种简单有效统一的API路由管理方式。 Spring Cloud Gateway 作为SpringCloud生态…

WebService学习,wsdl文件详解

目录 第一章、起因1.1&#xff09;学习原因1.2&#xff09;提问的过程&#xff08;逐步提出问题&#xff09;1、&#xff1f;wsdl链接的含义&#xff0c;有什么作用&#xff1f;2、什么是wsdl文档&#xff1f;3、如何阅读wsdl文件&#xff1f;4、wsdl文件有什么作用&#xff1f…

【校招】从容面对笔试面试

笔试面试经验分享 一、笔试二、面试1.自我介绍2. 技术面试 一、笔试 如果是面试研发岗的话一般都是有笔试&#xff0c;难度因公司而异&#xff0c;一般来说越大的公司笔试就越难。对于不同岗位考察的方向也不一样&#xff0c;比如如果岗位是偏通信类的话多一点的话可能就会考一…

【Vuforia+Unity】AR03-圆柱体物体识别(Cylinder Targets)

1.创建数据库模型 这个是让我们把生活中类似圆柱体和圆锥体的物体进行AR识别所选择的模型 Bottom Diameter:底部直径 Top Diameter:顶部直径 Side Length:圆柱侧面长度 请注意&#xff0c;您不必上传所有三个部分的图片&#xff0c;但您需要先为侧面曲面关联一个图像&#…

探索无限:Sora与AI视频模型的技术革命 - 开创未来视觉艺术的新篇章

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua&#xff0c;在这里我会分享我的知识和经验。&#x…

同一个包下 golang run时报undefined

问题描述 今天在运行一个项目&#xff0c;一个包下有两个文件&#xff0c;分别是main.go和route&#xff0c;main函数在main.go文件中&#xff0c;main引用了route.go中的两个函数&#xff0c;SetupRoutes和SetupAdminRoutes go build 编译后&#xff0c;直接运行&#xff0c…

算法——模拟

1. 什么是模拟算法&#xff1f; 官方一点来说 模拟算法&#xff08;Simulation Algorithm&#xff09;是一种通过模拟现实或抽象系统的运行过程来研究、分析或解决问题的方法。它通常涉及创建一个模型&#xff0c;模拟系统中的各种事件和过程&#xff0c;以便观察系统的行为&a…

pclpy 可视化点云(多窗口可视化、单窗口多点云可视化)

pclpy 可视化点云&#xff08;多窗口可视化、单窗口多点云可视化&#xff09; 一、算法原理二、代码三、结果1.多窗口可视化结果2.单窗口多点云可视化 四、相关数据五、问题与解决方案1.问题2.解决 一、算法原理 原理看一下代码写的很仔细的。。目前在同一个窗口最多建立2个窗…

PCIE转USB3.0方案(VL805,VL806)

VLI VL806 是一款单芯片 USB 3.0 主机控制器&#xff0c;可使配备 PCI Express 的平台能够具有 USB 超高速 &#xff08;5 Gbps&#xff09;、高速 &#xff08;480 Mbps&#xff09;、全速 &#xff08;12 Mbps&#xff09; 和低速 &#xff08;1.5 Mbps&#xff09; 设备。根…

【力扣hot100】刷题笔记Day10

前言 一鼓作气把链表给刷完&#xff01;&#xff01;中等题困难题冲冲冲啊啊啊&#xff01; 25. K 个一组翻转链表 - 力扣&#xff08;LeetCode&#xff09; 模拟 class Solution:def reverseKGroup(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:# 翻转…

使用 JMeter 生成测试数据对 MySQL 进行压力测试

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

小程序-上拉触底

1.概念 2.使用与监听 3.配置距离

GEE数据集——30 米全球年度烧毁面积地图 (GABAM)(更新)

30 米全球年度烧毁面积地图 (GABAM) 迄今为止&#xff0c;全球烧毁面积&#xff08;BA&#xff09;产品只有较高的空间分辨率&#xff0c;因为目前大多数全球烧毁面积产品都是在主动火灾探测或密集时间序列变化分析的帮助下生成的&#xff0c;这需要非常高的时间分辨率。不过&a…