MQTT Java入门 -Spring Boot 整合 artemis

Spring Boot MQTT协议

通过spring boot整合apache artemis实现Java语言MQTT协议通信,搭建MQTT服务器可以参考上一篇 MQTT Java入门-搭建MQTT服务器

Spring Boot项目创建

创建一个spring boot项目使用最新的spring boot版本
spring boot项目创建
 

添加artemis依赖

maven pom.xml添加以下依赖:

        <!--MQTT-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-artemis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-pool</artifactId>
        </dependency>

编写MQTT消息发布者

import lombok.extern.slf4j.Slf4j;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;

/**
 * 消息生产者
 */
@Slf4j
@Service
public class MessageProducerService {

    @Resource
    JmsTemplate jmsTemplate;


    /**
     * 测试 每5秒发送一个消息
     */
    @Scheduled(cron = "0/5 * * * * ?")
    public void sendMessage(){
        Map<String,String> dataMap=new HashMap<>();
        dataMap.put("Hello Artemis","MQTT");
        jmsTemplate.convertAndSend("destinationName1",dataMap);
        log.info("send message success!");
    }

}

用于发布消息到MQTT服务器

编写MQTT消息消费者

import lombok.extern.slf4j.Slf4j;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Service;

import java.util.Map;

@Slf4j
@Service
public class MessageConsumerService {


    @JmsListener(destination = "destinationName1")
    public void receiveMessage(Map<String,String> dataMap){
        try {
            //等待10秒模拟
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        log.info("Receive Message : {}",dataMap.toString());
    }

}

用于模拟接受MQTT协议消息内容

编写MQTT配置文件

隐藏内容,登录后查阅

在启动类注解启动调度任务

@EnableScheduling

启动项目

查看console面板可以看到消息的发送和接受日志
MQTT Java入门 -Spring Boot 整合 artemis

通过Apache ActiveMQ Artemis web管理也可以看到消息队列
Apache ActiveMQ Artemis

项目源码下载:项目源码点击下载(访问密码:9987)
 

原创文章,作者:6024010,如若转载,请注明出处:https://blog.ytso.com/243953.html

(0)
上一篇 2022年4月11日
下一篇 2022年4月11日

相关推荐

发表回复

登录后才能评论