JavaMQTT主题匹配评估
我正在使用Mqtt(Paho)实现一个Android应用程序。我有一些组件,我必须将订阅的主题(包括通配符)与客户端发布到的acutal主题进行总体比较
我只是没有头脑,我的“基本”正则表达式技能也没有帮助
Paho/Java MQTT中是否有实用程序类来查看
“传感器/温度/+/度/#/ID”(订阅主题)
适用于
“先生/温度/花园/摄氏度/摄氏度/零上/身份证”(实际话题)
有人知道最好的方法是什么吗
谢谢!
编辑:你好,我想这应该是正确的
public static boolean compareTopic(final String actualTopic, final String subscribedTopic){
return actualTopic.matches(subscribedTopic.replaceAll("\\+", "[^/]+").replaceAll("#", ".+"));
}
# 1 楼答案
你的解决方案应该有效,所以在你的例子中,正则表达式应该是
像http://www.regexplanet.com/advanced/java/index.html这样的网站对于此类案例来说是一个非常好的资源
# 2 楼答案
我已经进行了一些测试,我认为这是可行的:
# 3 楼答案
下面是一个示例,说明如何将MQTT主题与util_主题中的
mosquitto_topic_matches_sub()
函数中的订阅相匹配。c:https://github.com/eclipse/mosquitto/blob/master/lib/util_topic.c
这看起来很简单,但是有一些问题需要解决,所以你的简单正则表达式并不能很好地完成这项工作