Apa perbedaan utama antara MQTT dan Soket Web?
Saat menggunakan IoT untuk otomatisasi rumah - kontrol dan pantau akses melalui berbagai perangkat, yang mana salah satunya harus digunakan saat Rest API berbasis dan aksesibilitas berbasis browser diperlukan.
Saya menggunakan Java (Pi4J Library) pada Raspberry Pi 2 B +.
Saya memiliki pengaturan beberapa sensor seperti terang dan gelap, kelembaban, PID dll.
Saya juga memiliki server cloud tempat saya dapat mengirim data jika diperlukan.
communication
monitoring
mqtt
Shakti Phartiyal
sumber
sumber
Jawaban:
Pengaturan pertanyaan di sini sedikit menyesatkan, karena sebenarnya protokol-protokol ini sama sekali tidak dapat dibandingkan. Mereka seperti TCP dan IP, lapisan di atas satu sama lain. [1]
Websockets adalah protokol tingkat rendah untuk menyediakan hal-hal yang tidak disediakan oleh 'pesaing' RESTful http-nya yang berada di level yang sama: saluran yang selalu terbuka tanpa perlu membuka dan menutup pada setiap permintaan. [2]
MQTT menyediakan cara yang ringan untuk menerbitkan atau berlangganan data. Kekeliruannya mungkin karena langganan itu adalah semacam saluran, tetapi itu adalah jenis saluran yang berbeda. Untuk membuat koneksi terbuka konstan di MQTT Anda memerlukan Websockets AND MQTT pada saat yang bersamaan.
Di IoT, juga dalam desain apa pun, Anda harus memilih apakah Anda perlu streaming atau tidak (WebSockets vs RESTful) dan tentang MQTT, Anda mungkin harus berpikir apakah Anda ingin berlangganan dan menerbitkan mekanisme pada aplikasi Anda.
Pada beberapa keadaan Anda dapat mempertimbangkan MQTT melalui WebSockets, jika ada hal umum yang ada. [3]
Jawab pertanyaan:
Anda mengatakan Anda memiliki pengaturan Rasperry Pi dan beberapa sensor di sekitar tempat itu. Jika sensor jauh dari Rasperry dengan pengontrolnya sendiri, Anda dapat menggunakan MQTT untuk mengumpulkan data. Untuk menyimpan data ke cloud, kirim data dalam HTTP. Di cloud menyediakan data melalui istirahat. [4]
Untuk websockets tidak perlu, tetapi jika Anda merasa berguna, gunakan saja.
Sumber:
[1] https://www.quora.com/What-are-the-pros-and-cons-of-WebSockets-versus-MQTT-as-real-time-web-infrastructure-for-the-Internet-of -Sesuatu
[2] https://www.pubnub.com/blog/2015-01-05-websockets-vs-rest-api-understanding-the-difference/
[3] /programming/30624897/direct-mqtt-vs-mqtt-over-websocket
[4] http://www.theinternetofthings.eu/antonio-grasso-mqtt-vs-http-what-best-protocol-iot
sumber
Mereka sebanding karena keduanya memungkinkan Anda untuk memiliki komunikasi dupleks-penuh sehingga server dapat segera mengirimkan data ke klien, tanpa polling klien untuk itu (seperti mungkin dengan HTTP).
Namun, Websockets dirancang untuk koneksi point-to-point sederhana antara klien dan server. MQTT melapisi abstraksi tambahan di atas pengiriman pesan dasar, sehingga banyak pihak yang berkepentingan dapat berlangganan pesan yang mungkin menarik bagi mereka. Pesan karena itu dapat dialihkan oleh 'topik pesan' sehingga banyak klien dapat berbagi antrian nosional, di mana server dapat memilih untuk mendengar semua pesan dari semua klien, tetapi juga dapat memfilter menurut topik.
MQTT memiliki berbagai fitur bermanfaat lainnya, mis. Pesan yang disimpan, sehingga pelanggan segera menerima pesan, dan LWT (Last Will and Testament) yang merupakan pesan yang dapat dikirim secara otomatis jika klien secara abnormal terputus. Singkatnya, MQTT adalah fitur penawaran yang lebih tinggi dan abstraksi yang tidak dimiliki Websocket sederhana.
sumber