【问题标题】:MQTT / Camel / Custom header parametersMQTT / Camel / 自定义头参数
【发布时间】:2016-08-07 06:00:29
【问题描述】:

所以,问题: 我需要通过 Apache Camel/MQTT 在标头中发送一些自定义值。

代码示例:

import java.util.Map;

import org.apache.camel.CamelContext;
import org.apache.camel.Message;
import org.apache.camel.impl.DefaultCamelContext;

public class MQTTEntryPoint {

    private static final String BASE = "mqtt:test?host=tcp://ip_address&";
    private static final String SUBSCRIBER = BASE + "subscribeTopicName=test2";
    private static final String PUBLISHER = BASE + "publishTopicName=test2";

    public static void main(String[] args) {
        CamelContext camelContext = new DefaultCamelContext();
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                Message message = camelContext.createConsumerTemplate().receive(SUBSCRIBER).getIn();
                String body = message.getBody(String.class);
                System.out.println(body);
                Map<String, Object> headers = message.getHeaders();
                for (String key : headers.keySet()) {
                    System.out.println("Header key: " + key + ", Header value: " + headers.get(key));
                }
            }
        });
        thread.start();

        camelContext.createProducerTemplate().sendBodyAndHeader(PUBLISHER, "some body value", "headerKey",
                "some header value");

    }
}

在系统外我只能看到:

some body value
Header key: CamelMQTTSubscribeTopic, Header value: test2

如您所见,发送自定义标头值不起作用。怎么了?

【问题讨论】:

    标签: java jms apache-camel mqtt


    【解决方案1】:

    MQTT 协议 AFAIR 仅支持单个有效负载,没有任何附加标头。

    【讨论】:

    • 谢谢回复。这也适用于sendBodyAndProperty 方法?
    • @AndrewSikorsky,在骆驼路线中是否可以进行转换以包含标头?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 2012-04-23
    • 2012-02-28
    • 2022-12-20
    • 2015-12-18
    相关资源
    最近更新 更多