我是靠谱客的博主 潇洒音响,最近开发中收集的这篇文章主要介绍分享个简单可用的spring boot + empx 组件库(亲测可用)mqtt-spring-boot-starter,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
github 地址: https://github.com/tocrhz/mqtt-spring-boot-starter
(PS:转自github 原作者的页面 )
mqtt-spring-boot-starter
MQTT starter for Spring Boot, easier to use.
Support spring boot version: 1.5.x ~ 2.4.0
This document is machine translated.
1. maven 导入
<dependency> <groupId>com.github.tocrhz</groupId> <artifactId>mqtt-spring-boot-starter</artifactId> <version>1.2.3</version> </dependency>
2. 在application.properties中添加配置
mqtt.uri=tcp://127.0.0.1:1883 //mqtt服务器地址
mqtt.client-id=default_client //可以随便填,但要保持唯一性
mqtt.username=username //填自己的
mqtt.password=password //填自己的
//若使用了集群,可以增加下面的配置,若只是用单机,则可把下面注释掉
mqtt.clients.multi_client_1.uri=tcp://127.0.0.1:1883
mqtt.clients.multi_client_1.username=username
mqtt.clients.multi_client_1.password=password
mqtt.clients.multi_client_2.uri=tcp://127.0.0.1:1883
mqtt.clients.multi_client_2.username=username
mqtt.clients.multi_client_2.password=password
3. 使用
订阅
在方法上添加 @MqttSubscribe 注解即可
例子:
@Component public class MqttMessageHandler { /** * topic = test/+ * topic采用的正则表达式 * payload一般是json 对象 */ @MqttSubscribe("test/+") public void sub(String topic, MqttMessage message, @Payload String payload) { logger.info("receive from : {}", topic); logger.info("message payload : {}", new String(message.getPayload(), StandardCharsets.UTF_8)); logger.info("string payload : {}", payload); } /**当有多个客户端时,可以指定订阅哪个客户端的主题 * clientId = multi_client_1 * topic = test/+ */ @MqttSubscribe(value = "test/+", clients = "multi_client_1") public void sub(String topic, MqttMessage message, @Payload String payload) { logger.info("receive from : {}", topic); logger.info("message payload : {}", new String(message.getPayload(), StandardCharsets.UTF_8)); logger.info("string payload : {}", payload); } /** * subscribe = $queue/test/+ * topic = test/+ * pattern = ^test/([^/]+)$ */ @MqttSubscribe(value="test/{id}", shared=true) public void sub(String topic, @NamedValue("id") String id, @Payload String userInfo) { logger.info("receive from : {}", topic); logger.info("named value id : {}", id); logger.info("object payload : {}", userInfo); } }
publish
Just inject MqttPublisher
and call the send
method.
e.g.
@Component public class DemoService { private final MqttPublisher publisher; public DemoService(MqttPublisher publisher) { this.publisher = publisher; } public void sendTest(){ publisher.send("test/send", "test message, default QOS is 0."); } }
//更多请看官网
最后
以上就是潇洒音响为你收集整理的分享个简单可用的spring boot + empx 组件库(亲测可用)mqtt-spring-boot-starter的全部内容,希望文章能够帮你解决分享个简单可用的spring boot + empx 组件库(亲测可用)mqtt-spring-boot-starter所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复