Según tengo entendido, en MQTT se crea un tema una vez que un cliente publica algo con el nombre del tema correspondiente.
No hay necesidad de configurar un tema, es suficiente publicarlo.
A partir de aquí .
¿Es posible que un cliente se suscriba a su propio tema, después de que lo publicó, lo creó? No pude encontrar ninguna restricción en las especificaciones . Tampoco figura como posible comportamiento anormal:
5.4.8 Detectar comportamientos anormales
Las implementaciones del servidor pueden monitorear el comportamiento del Cliente para detectar posibles incidentes de seguridad. Por ejemplo:
- Intentos repetidos de conexión
- Intentos repetidos de autenticación
- Terminación anormal de las conexiones.
- Escaneo de temas (intentos de enviar o suscribirse a muchos temas)
- Envío de mensajes que no se pueden entregar (no hay suscriptores a los temas)
- Clientes que se conectan pero no envían datos
Basado en esto, creo que ciertamente es posible. Entonces, ¿me interesan los casos de uso de esta función?
¿Por qué el estándar permite dicho mecanismo? ¿Sería complicado rastrear al propietario de los temas? Por lo tanto, simplemente permite a los clientes suscribirse a su propio tema.
Un caso de uso en el que puedo pensar es que de esta manera un cliente puede verificar sus datos publicados.
Si.
Los clientes MQTT están conectados a un agente que puede ser una nube o algún otro dispositivo.
No existe tal cosa como la creación del tema. Se utilizan como encabezado de un mensaje. Entonces, si su cliente se ha suscrito a un tema y si publica algo sobre ese tema, el mensaje se recibirá nuevamente a través del intermediario.
Ejemplos de buenos corredores son Mosquitto para ejecutar en dispositivos y CloudMqtt para Broker basado en la nube
fuente