1. Introducción
El siguiente artículo explica cómo conectar un broker Mosquitto a MyQttHub con un bridge de manera que los mensajes enviados a MyQttHub serán enviados a tu Mosquitto y viceversa.
El artículo proporciona una configuración general que tiene que seguir pero posiblemente tenga que ajustarla para que encaje mejor con sus necesidades.
2. Asegúrese de que tiene un Mosquitto actualizado
Asegúrese de que tiene un servidor Mosquitto instalado en sus sistema y que proporciona soporte para “remote_clientid”. También, asegúrese de que tiene un OpenSSL instalado con los últimos certificados públicos localizados en /etc/ssl/certs.
Ciertamente es posible conectar Mosquitto a MyQttHub con un bridge usando protocolo no seguro (mqtt sin TLS) pero esto es altamente no recomendable.
3. Asegúrese de crear unas credenciales específicas para su servidor Mosquitto
-
Si no tiene unas, use el siguiente artículo para crear un dispositivo que represente la conexión de su servidor Mosquitto:
-
No tiene que ser un dispositivo administrador. Tiene que estar activo.
-
Apunte estas credenciales (clientId, usuario y contraseña), para usarlas en las siguientes secciones.
4. Configurando su servidor Mosquitto para hacer bridge con MyQttHub
Asumiendo que ya tiene un Mosquitto instalado en su sistema, siga los siguientes pasos:
-
Abra el /etc/mosquitto/mosquitto.conf y añada las siguientes indicaciones generales (antes de cualquier llamada a include_dir):
# Broker MQTT externo: MyQttHub connection node02.myqtthub.com # Conectar con puerto estándar MQTT TLS address node02.myqtthub.com:8883 # Asegure que mosquitto encuentre los certificados publicos bridge_capath /etc/ssl/certs # Conectar todo en ambos lados topic # both # Configure las credenciales para autenticar (las creadas anteriormente) remote_clientid <put-here-client-id> remote_username <put-here-user-name> remote_password <password>
5. Ahora reinicie y compruebe los logs
-
Después de que todo esté configurado, reinicie su Mosquitto, que, dependiendo de su OS, será algo como:
# sistemas basados en systemd >> systemctl restart mosquitto # sistemas basados en upstart >> service mosquitto restart # sistemas basados en sysV >> /etc/init.d/mosquitto restart
-
Después de eso, deberías ver algo como lo siguiente en los logs (en particular, deberías recibir un CONNACK):
>> tail -f /var/log/mosquitto/mosquitto.log 593017815: Bridge local.<your-client-id-will-appear-here> doing local SUBSCRIBE on topic # 1593017815: Connecting bridge (step 1) node02.myqtthub.com (node02.myqtthub.com:8883) 1593017816: Connecting bridge (step 2) node02.myqtthub.com (node02.myqtthub.com:8883) 1593017816: Bridge <your-client-id-will-appear-here> sending CONNECT 1593017816: Received CONNACK on connection local.<your-client-id-will-appear-here>. 1593017816: Bridge local.<your-client-id-will-appear-here> sending SUBSCRIBE (Mid: 2, Topic: #, QoS: 0, Options: 0x00)
-
Al mismo tiempo, si va a “Connected Device”:
-
…y pulsa sobre “Connected Devices”:
-
…debería ver su dispositivo mosquitto, con una indicación de bridge: