2016-06-29 2 views
1

Может ли кто-нибудь помочь мне узнать, как перехватывать сообщения mqtt на брокере ActiveMQ Artemis? Я попробовал, как было предложено в руководстве, но сообщения mqtt не перехватывают. Однако публикация и подписка на сообщения работают нормально.Перехват сообщений mqtt в artemis

перехватчик Класс:

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

ответ

0

Я filled a feature request для поддержки перехватчик в MQTT. Он уже реализован и был выпущен в Artemis 1.4.0.

В Artemis 1.3.0 могут быть перехвачены только сообщения, отправленные по основному протоколу (и, возможно, еще одному, кроме MQTT).

Смежные вопросы