Memilih protokol komunikasi perangkat

IoT Hub memungkinkan perangkat untuk menggunakan protokol berikut untuk komunikasi sisi perangkat:

Catatan

IoT Hub memiliki dukungan fitur terbatas untuk MQTT. Jika solusi Anda memerlukan dukungan MQTT v3.1.1 atau v5, kami sarankan dukungan MQTT di Azure Event Grid. Untuk informasi selengkapnya, lihat Membandingkan dukungan MQTT di IoT Hub dan Event Grid.

Untuk informasi tentang bagaimana protokol tersebut mendukung fitur IoT Hub tertentu, lihat Panduan komunikasi perangkat ke cloud dan Panduan komunikasi cloud ke perangkat.

Tabel berikut ini menyediakan rekomendasi tingkat tinggi untuk pilihan protokol Anda:

Protokol Kapan Anda harus memilih protokol ini
MQTT
MQTT melalui Websocket
Gunakan di semua perangkat yang tidak memerlukan koneksi ke beberapa perangkat, masing-masing dengan info masuk per perangkatnya sendiri, melalui koneksi TLS yang sama.
AMQP
AMQP melalui WebSocket
Gunakan di gateway cloud dan bidang untuk memanfaatkan multiplexing koneksi di seluruh perangkat.
HTTPS Gunakan untuk perangkat yang tidak dapat mendukung protokol lain.

Pertimbangkan poin-poin berikut saat Anda memilih protokol untuk komunikasi sisi perangkat:

  • Pola cloud ke perangkat. HTTPS tidak memiliki cara yang efisien untuk menerapkan pendorongan server. Dengan demikian, saat Anda menggunakan HTTPS, perangkat melakukan polling IoT Hub untuk pesan cloud-ke-perangkat. Pendekatan ini tidak efisien untuk perangkat dan IoT Hub. Di bawah panduan HTTPS saat ini, setiap perangkat harus melakukan polling untuk pesan setiap 25 menit atau lebih. Mengeluarkan lebih banyak HTTPS menerima hasil di IoT Hub yang membatasi permintaan. MQTT dan AMQP mendukung dorongan server saat menerima pesan cloud ke perangkat. MQTT dan AMQP memungkinkan dorongan pesan langsung dari IoT Hub ke perangkat. Jika latensi pengiriman menjadi perhatian, MQTT atau AMQP adalah protokol terbaik untuk digunakan. Untuk perangkat yang jarang tersambung, HTTPS juga berfungsi.

  • Gateway bidang. MQTT dan HTTPS hanya mendukung satu identitas perangkat (ID perangkat plus info masuk) per koneksi TLS. Untuk alasan ini, protokol ini tidak didukung untuk skenario gateway bidang yang memerlukan pesan multipleks, menggunakan beberapa identitas perangkat, baik di satu koneksi atau kumpulan koneksi upstram ke IoT Hub. Gateway semacam itu dapat menggunakan protokol yang mendukung beberapa identitas perangkat per koneksi, seperti AMQP, untuk lalu lintas upstream-nya.

  • Perangkat sumber daya rendah. Pustaka MQTT dan HTTPS memiliki jejak yang lebih kecil daripada pustaka AMQP. Dengan demikian, jika perangkat memiliki sumber daya terbatas (misalnya, kurang dari 1 MB RAM), protokol ini mungkin menjadi satu-satunya implementasi protokol yang tersedia.

  • Traversal jaringan. Protokol AMQP standar menggunakan port 5671, dan MQTT mendengarkan di port 8883. Penggunaan port tersebut dapat menyebabkan masalah dalam jaringan yang tertutup untuk protokol non-HTTPS. Gunakan MQTT melalui WebSocket, AMQP melalui WebSocket, atau HTTPS dalam skenario ini.

  • Ukuran payload. MQTT dan AMQP adalah protokol biner, yang menghasilkan payload yang lebih ringkas daripada HTTPS.

Peringatan

Saat menggunakan HTTPS, setiap perangkat harus melakukan polling untuk pesan cloud ke perangkat tidak lebih dari sekali setiap 25 menit. Dalam pengembangan, setiap perangkat dapat melakukan polling lebih sering, jika diinginkan.

Penting

Fungsionalitas berikut untuk perangkat yang menggunakan autentikasi otoritas sertifikat (CA) X.509 belum tersedia secara umum, dan mode pratinjau harus diaktifkan:

  • HTTPS, MQTT melalui WebSocket, dan AMQP melalui protokol WebSockets.
  • Unggahan file (semua protokol).

Fitur ini umumnya tersedia di perangkat yang menggunakan autentikasi thumbprint X.509. Untuk mempelajari selengkapnya tentang autentikasi X.509 dengan IoT Hub, lihat Sertifikat X.509 yang didukung.

Nomor port

Perangkat dapat berkomunikasi dengan IoT Hub di Azure menggunakan berbagai protokol. Biasanya, pilihan protokol didorong oleh persyaratan khusus solusi. Tabel berikut mencantumkan port keluar yang harus dibuka agar perangkat dapat menggunakan protokol tertentu:

Protokol Port
MQTT 8883
MQTT melalui Websocket 443
AMQP 5671
AMQP melalui WebSocket 443
HTTPS 443

Alamat IP dari hub IoT dapat berubah tanpa pemberitahuan. Untuk mempelajari cara mengurangi efek perubahan alamat IP hub IoT pada solusi dan perangkat IoT Anda, lihat bagian Praktik terbaik dari alamat IP IoT Hub.

Langkah berikutnya

Untuk informasi selengkapnya tentang cara IoT Hub menerapkan protokol MQTT, lihat Berkomunikasi dengan hub IoT Anda menggunakan protokol MQTT.