in rocketmq-iot-bridge/src/main/java/org/apache/rocketmq/iot/storage/subscription/impl/InMemorySubscriptionStore.java [162:182]
private boolean match(String filter, String topic) {
if (!filter.contains(MqttConstant.SUBSCRIPTION_FLAG_PLUS) && !filter.contains(MqttConstant.SUBSCRIPTION_FLAG_SHARP)) {
return filter.equals(topic);
}
String[] filterTopics = filter.split(MqttConstant.SUBSCRIPTION_SEPARATOR);
String[] actualTopics = topic.split(MqttConstant.SUBSCRIPTION_SEPARATOR);
int i = 0;
for (; i < filterTopics.length && i < actualTopics.length; i++) {
if (MqttConstant.SUBSCRIPTION_FLAG_PLUS.equals(filterTopics[i])) {
continue;
}
if (MqttConstant.SUBSCRIPTION_FLAG_SHARP.equals(filterTopics[i])) {
return true;
}
if (!filterTopics[i].equals(actualTopics[i])) {
return false;
}
}
return i == actualTopics.length;
}