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