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?
Respuestas:
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.
fuente