springboot-mqtt接收字节数组数据

236 阅读1分钟

代码

    /**
     * 配置client,监听的topic
     */
    @Bean
    public MessageProducer inbound() {
        MqttPahoMessageDrivenChannelAdapter adapter =
                new MqttPahoMessageDrivenChannelAdapter(mqttProperties.getClientid() + "_inbound",
                        mqttClientFactory(), mqttProperties.getTopic().split(","));
        adapter.setCompletionTimeout(5000);
//        adapter.setConverter(new DefaultPahoMessageConverter());
        // 设置转换器,接收bytes
        DefaultPahoMessageConverter converter = new DefaultPahoMessageConverter();
        converter.setPayloadAsBytes(true);

        adapter.setConverter(converter);

        adapter.setQos(1);
        adapter.setOutputChannel(mqttInboundChannel());
        return adapter;
    }

在配置MqttConfig的输入时,设置接收bytes的转换器即可,这样即可处理字节数据,也可以直接处理字符数据

DefaultPahoMessageConverter converter = new DefaultPahoMessageConverter();
converter.setPayloadAsBytes(true);

adapter.setConverter(converter);