Cómo encontrar ayuda con una implementación MQTT en Ubuntu

En Ubuntu, ejecuté tanto mosquitto como RabbitMQ como corredores MQTT. Mosquitto fue fácil de ejecutar, pero terminé cambiando a RabbitMQ para manejar otro proyecto que lo necesitaba. Mosquitto tiene un manejo de credenciales más sustancial que RabbitMQ para el propósito específico de tratar varios temas de MQTT especialmente, por lo que elegiría eso sobre RabbitMQ para esta tarea en particular.

No obtienes una interfaz de socket con MQTT. Más bien, obtienes una serie de mensajes que se publican y se suscriben. Si necesita una transferencia de datos en tiempo real, puede obtenerla, pero enviará un mensaje a la vez. Por lo tanto, sería fácil transferir archivos a través de MQTT, pero difícil de implementar un protocolo como telnet.

Hay varios proyectos de Arduino que han incorporado MQTT. Necesitará una interfaz de red compatible que admita la API Arduino Ethernet Client. Ver, por ejemplo, Arduino Client para MQTT como cliente.

En el lado de Android, miraría de cerca el cliente Owntracks Su compañero de ubicación que se publica con el código fuente en Github. Es bastante maduro y hace un buen trabajo.

Como señaló Edward, tanto mosquitto como RabbitMQ pueden cubrir esto, me gustaría agregar que mosquitto tiene un mecanismo de autenticación extensible en forma de complementos de autenticación que pueden ser útiles en algunos casos.

Un detalle sobresaliente para mí es: ¿el corredor será público en Internet? Si es así, puentearía mosquitto a RabbitMQ, ya que los dos se pueden configurar en un puente (por ejemplo, mostrar mensajes MQTT en un navegador en tiempo real), y RabbitMQ es un poco más de prueba pública de batalla en línea.

También puede buscar en una red MQTT más cerrada usando Google Cloud Messaging (GCM) para su Android Push e iniciar la comunicación bidireccional en lugar de asumir que funcionará una conexión de larga duración en un dispositivo ‘móvil’, también el protocolo de tiempo de espera en MQTT aumentará el ancho de banda si hay datos celulares en uso o un problema.

Para solo dos dispositivos pasar mensajes en un mosquitto LAN es más que suficiente, asegúrese de buscar en los niveles de QoS la integridad de sus datos.

HTH

Gracias por A2A.

Puede buscar en esta biblioteca de Python Un corredor de código abierto MQTT v3.1 Broker.
En lo que respecta a la base de datos mysql para fines de validación, creo que puede lograrlo escribiendo complementos de autenticación y usándolos definiendo en mosquitto.conf

Esta biblioteca está disponible para Ubuntu a través de un PPA y todas las demás distribuciones importantes y la documentación básica también deberían ayudarlo a llevarse bien con la biblioteca rápidamente.

PD: no soy un experto y nunca he usado esta biblioteca antes. De hecho, me familiaricé con el protocolo MQTT después de leer esta pregunta.