有人可以指导我如何在 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