2015-03-09 9 views
5

Attualmente sto eseguendo con successo un broker mosquitto, sottoscrivendo argomenti e pubblicando messaggi con i clienti in una rete locale.Come utilizzare MQTT su Internet?

Come posso comunicare con un'altra rete locale che si trova a un indirizzo IP diverso?

Devo impostare 2 broker mosquitto, uno per ogni rete locale?

+1

Per i futuri lettori: portare avanti i router che si incontrano, verificare se la propria porta è stata inoltrata correttamente con canyouseme.org o con il software "Portforward Network Utilities". Aggiungi una regola in entrata e in uscita al tuo firewall. Prova a pubblicare/sottoscrivere l'altra rete locale utilizzando il suo IP globale. –

risposta

6

Il PC nell'altra rete locale deve essere accessibile da Internet, quindi se si trova dietro un firewall, è necessario impostare una regola di port forwarding all'interno del router. La regola deve inoltrare il traffico dall'indirizzo IP pubblico all'indirizzo IP privato LAN interno del broker.

Ricordare che MQTT utilizza le porte 1883 e 8883 (per SSL).

+0

Grazie. Sono riuscito ad aprire entrambe le porte configurando il mio router. Ho controllato con il software "port forwarding network utilities" se la mia porta è aperta, e lo è. Ora, se voglio collegare un client a un broker in un'altra rete locale, quale indirizzo IP dovrei usare? Presumo che debba essere l'IP globale con un tipo di estensione per determinare a quale IP locale voglio collegarmi? –

+0

Oh no ... devi solo collegarti al tuo IP globale sulla porta 1883 (o 8883). Il router eseguirà il lavoro per l'inoltro delle richieste all'IP locale sulla porta 1883 (o 8883). – ppatierno

+0

Grazie per il vostro aiuto, sono riuscito a collegare le 2 reti locali. –

1

Questo dipende dal modo in cui il sistema deve funzionare, ma è possibile utilizzare più broker (uno in ogni rete), quindi creare quello che è noto come un ponte tra i broker.

Questo ha il vantaggio che ogni rete può continuare a funzionare indipendentemente dalle altre mostra che c'è un'interruzione della rete.

I ponti consentono inoltre di controllare quali messaggi sono condivisi tra i siti. I dettagli su come creare un ponte sono nella pagina mosquitto.conf man:

http://mosquitto.org/man/mosquitto-conf-5.html

Ma, come dice Paolo, sarà necessario configurare il port forwarding per la porta 1883/8883 sul router per esporre il la mediatori su internet.

2

Perché mqtt uso tcp connessioni, v'è anche un modo sicuro per fare questo nel modo seguente:

Un privato mediatore Un dietro un firewall. B broker privato B dietro un altro firewall. C broker cloud C su Internet.

Impostare il ponte da A a C in entrambe le direzioni. Questo deve essere configurato su A. Il collegamento sicuro a tcp verrà creato da A.

Impostare il ponte B su C in entrambe le direzioni. Questo deve essere configurato su B. Il collegamento sicuro a tcp verrà creato da B.

Ciò creerà un bridge molto più sicuro e può essere eseguito anche se non si ha il controllo sul router o sul firewall.