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