MQTT یک پروتکل پیامرسانی سبک مبتنی بر الگوی انتشار/اشتراک است که برای دستگاههایی با توان پردازشی محدود و شبکههای ناپایدار طراحی شده. برخلاف درخواست-پاسخ در HTTP، اینجا دستگاهها بدون آگاهی از یکدیگر روی موضوعها پیام منتشر میکنند و یک بروکر مرکزی مثل Mosquitto یا EMQX پیامها را به مشترکان میرساند.
سه سطح کیفیت سرویس، تعادل میان قابلیت اطمینان و هزینه را در دست شما میگذارد. QoS ۰ پیام را یکبار و بدون تضمین میفرستد، QoS ۱ تحویل را تضمین میکند اما ممکن است پیام تکراری بفرستد و QoS ۲ دقیقاً یکبار تحویل میدهد با هزینهٔ سربار بیشتر. برای دادههای حسگری پرتکرار معمولاً QoS ۰ یا ۱ کافی است.
قابلیت پیام Last Will and Testament یکی از نقاط قوت MQTT است؛ اگر دستگاهی بهطور ناگهانی قطع شود، بروکر پیام از پیش تعیینشدهای منتشر میکند و سامانه فوراً از آفلاین شدن آن باخبر میشود. در کنار آن، پیامهای retained تضمین میکنند مشترک تازهوارد بلافاصله آخرین وضعیت موضوع را دریافت کند.
امنیت را نباید نادیده گرفت. ارتباط باید روی TLS رمزنگاری شود، هر دستگاه اعتبارنامهٔ یکتای خود را داشته باشد و با لیست کنترل دسترسی، اجازهٔ انتشار یا اشتراک هر دستگاه تنها به موضوعهای مجازش محدود شود. بدون این لایهها، یک دستگاه بهخطرافتاده میتواند کل شبکهٔ IoT را تهدید کند.