2015-06-03 18 views

risposta

18

È necessario eseguire MQTT su Websocket solo se si intende pubblicare/sottoscrivere messaggi direttamente dalle app Web (nella pagina).

Fondamentalmente eseguivo MQTT puro per tutto e aggiungo le web socket solo se effettivamente ne hai bisogno.

Per tutti i linguaggi del browser nessuno, le librerie client MQTT utilizzano solo MQTT nativo. Per Javascript esiste sia una libreria MQTT pura sia la libreria Paho nella pagina che utilizza websocket.

13

MQTT tramite websocket è perfetto se una determinata pagina Web è il client MQTT di invio o ricezione.

È possibile trovare un buon riepilogo delle funzionalità di MQTT su Websocket here.

11

Due motivi principali per l'utilizzo di MQTT oltre WebSockets (che significa effettivamente andando oltre HTTP/HTTPS):

  • applicazioni Web (quelli in esecuzione in un browser - ad esempio scritto in JavaScript)
  • tutte le altre applicazioni non voglio usare la porta 1883/8883 e voglio andare su HTTP/HTTPS invece - questo potrebbe essere così che c'è meno possibilità di essere bloccato da un firewall (ad esempio in una rete aziendale), come la maggior parte dei firewall lasciare il traffico HTTP attraverso

Se si esegue non è necessario o preoccuparsi di quanto sopra, usare "diretta" MQTT:

  • è più efficiente
  • ci sono più librerie client per i diversi linguaggi che lavorano con MQTT "diretta"
+1

Dire "che in effetti significa andare oltre HTTP/HTTPS" non è giusto. I Websocket sono vantaggiosi perché fondamentalmente non stanno usando HTTP/HTTPS e il sovraccarico implicito. Buona lettura (HTML5 WebSocket: un salto quantico in scalabilità per il Web) [http://websocket.org/quantum.html] per tutti i dettagli. – Sean

9

MQTT è un protocollo che supporta i seguenti:

  • Fornisce pubblicazione/sottoscrizione meccanismo
  • qualità della politica Servizio
  • Avere un sovraccarico minimo nella comunicazione
  • Specificamente progettato per canale di comunicazione a banda stretta e
    dispositivi vincolati.

A seconda del dispositivo è disponibile un'implementazione.

Browser: utilizza le web socket. Websocket fornisce ai browser la capacità di stabilire una comunicazione full duplex. C'è una libreria Javascript per implementare le funzionalità MQTT, vedi Eclipse Paho JavaScript Client

Android: Loro sono una libreria client MQTT scritta in Java per lo sviluppo di applicazioni su Android.Vedi Eclipse Paho Android Service

Quindi dipende dal dispositivo che utilizzerà questa funzionalità. Per gli standard e le specifiche, visitare MQTT Version 3.1.1

Sperare che questo aiuti.

Cheers!

3

MQTT tramite socket Web è anche utile se l'applicazione è in esecuzione dietro un firewall che consente solo il traffico 443 e 80. E non hai il controllo sulle politiche del firewall.

0

Con MQTT su Websocket, ogni browser può essere un dispositivo MQTT.

A causa del modello di pubblicazione/sottoscrizione di MQTT, si ottiene una spinta in tempo reale nel browser quando si verifica un evento, letteralmente in qualsiasi parte del mondo, purché si sottoscriva l'argomento corretto.

Nel caso di MQTT su WebSockets, la connessione Websockets costituisce un tubo esterno per il protocollo MQTT. Il server/broker inserisce il pacchetto MQTT in un pacchetto websockets e lo invia al client/server. Il client/server decomprime il pacchetto MQTT dal pacchetto websockets e lo elabora come un normale pacchetto MQTT.

enter image description here

Inoltre, ha una grande influenza su internet delle cose. Si prega di leggere i seguenti documenti per ulteriori dettagli.

SAP Cloud Platform Internet of Things

AWS IoT

MQTT over Websockets with HiveMQ

Problemi correlati