Cannot recieved any payload when topic set to #

Hi I used nodered as mqtt client, I can connect to my EMQX broker successfully (pubs and subs).
however I noticed some strange characteristic of EMQX, when topic was set to “#” which means I want to subscribe to all its topic, it doesn’t give me any return data. but when I specifically set the topic to “data/test” I can get my data.

image

I am new to EMQX, does it not allow the “#” as topic? I already used a lot of MQTT brokers but first time to encounter this situation in EMQX.

Hope you can help me.

Thanks and regards,
Henjoe

I’m afraid you didn’t subscribe successfully.

EMQX prohibits anyone from subscribing to topic # by default, in etc/acl.conf.

You can modify this file to enable you to subscribe to topic #, but we generally do not recommend this, because in the actual application process, you will find that you may receive unexpected messages.

Hi! Thanks for your suggestion.

I actually can subscribe to any topic, I just need to literally typed-in the topic like “topic/test”.

When I tried “topic/#” I can also recieved all my data under that “topic”, what I actually really want is to get all my data that’s why I want it to be “#”. However as you mentioned it is prohibited, is it a default configuration?

Yes, it’s a default rule in etc/acl.conf.

Hello.

Please how i can do find a substring in the “where” for the condition. For example I have:

A payload = ’ this sample of the string"

I ned:

SELECT * FROM ‘t/#’ WHERE ‘sample’ in payload

Exist any sentence for a substring in one string…?

Thanks
Fausto.

You can using the following SQL:

SELECT *
FROM
  "t/#"
WHERE
  find(payload, 'example') != ''

By the way, If it’s a different question, it’s best to ask it in a separate post.