拦截artemis中的mqtt消息

时间:2016-06-29 13:59:57

标签: activemq activemq-artemis

有人可以指导我如何拦截ActiveMQ Artemis经纪人的mqtt消息吗?我尝试了手册中的建议,但mqtt消息没有被拦截。但是,消息的发布和订阅工作正常。

拦截班:

public class InterceptorExample implements Interceptor {
      @Override
      public boolean intercept(Packet packet, RemotingConnection connection) throws ActiveMQException {
           System.out.println("Packet intercepted");
           return true;
      }
}

我将拦截器添加到addMQTTConnector方法

中的配置中
protected void addMQTTConnector() throws Exception {        

    .
    .
    .
    List<String> incomingInterceptors = new ArrayList<>();
    incomingInterceptors.add("org.apache.activemq.artemis.core.protocol.mqtt.InterceptorExample");
    server.getConfiguration().setIncomingInterceptorClassNames(incomingInterceptors);

}

经纪人类的完整代码位于https://codeshare.io/snZsB

1 个答案:

答案 0 :(得分:0)

I filled a feature request用于MQTT中的拦截器支持。它已经实施并在Artemis 1.4.0中发布。

在Artemis 1.3.0中,只能拦截通过核心协议发送的消息(可能还有一个除MQTT以外的消息)。