【问题标题】:How to integrate a mqtt broker into spring boot project如何将 mqtt 代理集成到 Spring Boot 项目中
【发布时间】:2022-01-26 20:38:09
【问题描述】:

如何将mqtt broker集成到spring boot项目中?

我曾经尝试过 spring-boot-starter-activemq ,但它是一个客户端,而不是一个代理


主要目的是云mqtt broker和内网mqtt broker之间的消息桥接,包括消息桥接和主题管理

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: spring mqtt broker


【解决方案1】:

消息代理服务器是独立的,因此 Spring boot 不提供 mqtt 代理的实现,只有使用带有 Spring Boot 的消息代理客户端才能连接到您的 MQTT 代理,如 Mosqitto/VerneMq/RabbitMq 等。

根据您的消息代理,您可以直接选择代理特定的客户端库或 你可以使用 spring-integration-mqtt 模块

 <dependency>
            <groupId>org.springframework.integration</groupId>
            <artifactId>spring-integration-stream</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.integration</groupId>
            <artifactId>spring-integration-mqtt</artifactId>
        </dependency>

您可以根据您的要求使用 spring 集成模块配置入站或出站实现,它会给您带来灵活性,因此您可以从一个 mqtt 代理切换到另一个。

内联示例:

@SpringBootApplication
public class MqttJavaApplication {

    public static void main(String[] args) {
        new SpringApplicationBuilder(MqttJavaApplication.class)
            .web(false)
            .run(args);
    }

    @Bean
    public IntegrationFlow mqttInbound() {
        return IntegrationFlows.from(
                         new MqttPahoMessageDrivenChannelAdapter("tcp://localhost:1883",
                                        "testClient", "topic1", "topic2");)
                .handle(m -> System.out.println(m.getPayload()))
                .get();
    }

}

外向示例:

@SpringBootApplication
public class MqttJavaApplication {

    public static void main(String[] args) {
        new SpringApplicationBuilder(MqttJavaApplication.class)
            .web(false)
            .run(args);
    }

    @Bean
    public IntegrationFlow mqttOutboundFlow() {
        return f -> f.handle(new MqttPahoMessageHandler("tcp://host1:1883", "someMqttClient"));
    }

}

您可以通过 spring boot integration-mqtt 模块文档了解更多详细信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 2017-07-23
    • 1970-01-01
    • 2019-11-15
    • 2016-04-13
    相关资源
    最近更新 更多