2016-06-29 23 views
1

Kann mir bitte jemand sagen, wie mqtt Nachrichten auf ActiveMQ Artemis Broker abgefangen werden? Ich habe versucht, wie in der Anleitung vorgeschlagen, aber die mqtt Nachrichten nicht abfangen. Das Veröffentlichen und Abonnieren von Nachrichten funktioniert jedoch einwandfrei.Abfangen von mqtt Nachrichten in Artemis

Interceptor-Klasse:

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

ich die Abfangjäger auf die Konfiguration in addMQTTConnector Methode

protected void addMQTTConnector() throws Exception {   

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

} 

vollständigen Code für die Broker-Klasse hinzuzufügen, ist bei https://codeshare.io/snZsB

Antwort

0

I filled a feature request für Interceptor Unterstützung in MQTT. Es ist bereits implementiert und wurde in Artemis 1.4.0 veröffentlicht.

In Artemis 1.3.0 konnten nur Nachrichten über das Kernprotokoll (und möglicherweise eine andere als MQTT) abgefangen werden.