Buradaki soru ayarı biraz yanıltıcıdır, çünkü aslında bu protokoller hiç bir şekilde karşılaştırılamaz. TCP ve IP gibidir, üst üste katmanlar. [1]
Websockets, aynı seviyede olan 'rakip' RESTful http'nin sağlamadığı şeyleri sağlamak için düşük seviyeli bir protokoldür: her istekte açık ve kapalı olmasına gerek kalmadan daima açık bir kanal. [2]
MQTT, verileri yayınlamak veya abone olmak için hafif bir yol sağlar. Karışıklık, bu aboneliğin bir çeşit kanal olması olabilir, ancak bu farklı bir kanal türüdür. MQTT'de sürekli açık bir bağlantı yapmak için Websockets AND MQTT'ye aynı anda ihtiyacınız vardır.
IoT'de ve herhangi bir tasarımda bir akıma ihtiyacınız olup olmadığını seçmeniz (WebSockets vs RESTful) ve MQTT hakkında, uygulamanızda bir abonelik ve yayınlama mekanizması isteyip istemediğinizi düşünmeniz gerekebilir.
Bazı durumlarda, ortak bir şey varsa, WebSockets üzerinden MQTT'yi düşünebilirsiniz. [3]
Sorunun cevabı:
Bir Rasperry Pi ve yerin etrafında birkaç sensör kurulumunuz olduğunu söylüyorsunuz. Sensörler kendi denetleyicileriyle Rasperry'den uzaksa, verileri toplamak için MQTT'yi kullanabilirsiniz. Verileri buluta depolamak için verileri HTTP olarak gönderin. Bulutta dinlenme yoluyla veri sağlayın. [4]
Websockets için gerek yoktur, ancak yararlı bulursanız kullanın.
Kaynaklar:
[1] https://www.quora.com/What-are-the-pros-and-cons-of-WebSockets-versus-MQTT-as-real-time-web-infrastructure-for-the-Internet-of -Bir şeyler
[2] https://www.pubnub.com/blog/2015-01-05-websockets-vs-rest-api-exptanding-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