Model yang digunakan IoT Hub menggunakan perangkat adalah bahwa mereka tidak akan pernah menerima koneksi masuk. Perangkat IoT Hub tidak pernah bertindak sebagai 'server', dan ini merupakan bagian penting dari model keamanan di Azure IoT. Model definitif tentang hal ini diringkas dalam Clemens Vaster ' ' Layanan Komunikasi Bantuan ' .
Oleh karena itu perangkat selalu 'polling' layanan eksternal untuk mengirim data atau menerima perintah. API membuatnya tampak seperti data sedang dikirim ke perangkat, tetapi selalu perangkat yang membuat koneksi keluar.
IoT hub melakukan ini dengan dua cara:
- Dengan mengirim data ke titik akhir perangkat
/devices/{deviceId}/messages/devicebound
. Ini adalah titik akhir perpesanan AMQP, mirip dengan antrian atau langganan topik. Perangkat, ketika membaca perintah, perlu menerima tanda terima jika diperlukan, yang merupakan bagian dari protokol AMQP yang mendasarinya. Ini berfungsi sama dengan MQTT, dan https adalah fallback yang valid. API merangkum semua ini untuk Anda. Ada konsep tambahan, seperti 'metode langsung' yang merupakan pembungkus API di sekitar protokol pesan mendasar yang sama
- Dengan menggunakan kembaran perangkat sisi server, yang merupakan cara untuk secara logis menjaga properti tetap sinkron antara perangkat dan server. Anda menetapkan properti pada kembaran perangkat, dan ketika perangkat menyinkronkan properti itu akan disinkronkan ke perangkat. Ini lebih sedikit berbasis pesan dan dibangun di atas protokol manajemen perangkat LWM2M.
Banyak dari 'polling', menghubungkan, berbagi koneksi, tanda terima, dll harus diurus sebagai bagian dari protokol AMQP (atau MQTT), yang pada gilirannya terbungkus dalam IoT Hub SDK. Jadi hal di atas sangat disederhanakan, tetapi untuk mengulangi, IoT Hub tidak dapat, dan tidak akan pernah mencoba dan mengirim data ke alamat / port ip pada perangkat Anda.