1

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にあります。

4

1 に答える 1

0

MQTT でのインターセプター サポートの機能リクエストに対応しました。これはすでに実装されており、Artemis 1.4.0 でリリースされました。

Artemis 1.3.0 では、コア プロトコル (および MQTT 以外の 1 つのプロトコル) を介して送信されたメッセージのみを傍受できました。

于 2016-07-01T17:57:36.550 に答える