¿Es necesario crear un número de ejes de temas MQTT para x número de dispositivos?

9

Actualmente en mi proyecto en el que el controlador (cliente) envía datos del sensor al servidor y recibe comentarios del servidor con algunos datos adicionales, utiliza el protocolo MQTT para la comunicación. Tiene 2 temas separados para cliente y servidor.

Por ejemplo:

Tema1 - Cliente (SUSCRIBE), Servidor (PUBLICA)
Tema2 - Cliente (PUBLICA), Servidor (SUSCRIBE)

Pero si este proyecto es un caso de uso de una aplicación más grande, digamos que unos 5000 dispositivos deben instalarse en algún lugar.

Entonces, ¿será necesario crear 5000 temas diferentes para el cliente y el servidor? ¿O con temas menores se puede hacer y cómo?

ron123456
fuente
1
¿Por qué crees que es un problema tener muchos temas?
hardillb
1
Probablemente porque el software tendría que gestionarlos a todos.
Mawg dice que reinstalar a Monica el
1
@hardillb No es un problema ... solo tenía curiosidad ... pero ¿puede un tema MQTT tener un subtema?
ron123456
2
Claro, los temas son jerárquicos, por lo que cualquier esquema puede ser ideado. Bujía s3.amazonaws.com/cirrus-link-com/... tiene un par de temas por nodo de borde y el dispositivo detrás de nodo de borde.
Gambit Support
echa un vistazo a este shiftr.io/shiftr-io/demo
jsotola

Respuestas:

5

De cliente a servidor, puede empaquetar la identificación del cliente en la carga útil, por ejemplo, si es JSON, una de las claves puede tener un valor de identificación del cliente.

La respuesta del servidor al cliente debe contener la identificación del cliente para que el intermediario no difunda el mensaje, sino que lo envíe directamente a un cliente conectado.

Al mismo tiempo, puede suscribir su servidor a algo como: "peticiones / +" y cada cliente publicará en "request / {client-id-1}", "request / {client-id-2}" y el servidor recibirá ambos con solo una suscripción.

shal
fuente