环境信息
- EMQX 版本:5.0.8
- 操作系统及版本:Windows10 x64
- 其他
问题描述
经测试下面的代码,执行了responseObserver.onError
之后,客户端还是能够成功订阅该主题。
有个这样的需求,例如在onClientSubscribe
函数中,根据客户端订阅的主题集合,遍历判断是否包含某个主题,如果有则直接中断该客户端连接,是否有该类型的方法提供?由于官方文档较少,没有找到相关信息,求解答。
@Override
public void onClientSubscribe(ClientSubscribeRequest request, StreamObserver<EmptySuccess> responseObserver) {
DEBUG("onClientSubscribe", request);
EmptySuccess reply = EmptySuccess.newBuilder().build();
List<TopicFilter> topicFiltersList = request.getTopicFiltersList();
for (TopicFilter topicFilter : topicFiltersList) {
if ("$dr".equals(topicFilter.getName())) {
responseObserver.onError(new RuntimeException("onClientSubscribe"));
}
}
responseObserver.onNext(reply);
responseObserver.onCompleted();
}