IoT Hub bağlı cihazların kullandığı model, gelen bağlantıları asla kabul etmeyecekleri modelidir. IoT Hub cihazları hiçbir zaman bir 'sunucu' gibi davranmazlar ve bu Azure IoT'deki güvenlik modelinin önemli bir parçasıdır. Bununla ilgili kesin model Clemens Vasters'ın 'Servis Destekli İletişim' bölümünde bulunmaktadır .
Bu nedenle cihazlar veri göndermek veya komut almak için her zaman harici bir hizmeti 'çağırır'. API'lar veriyi bir cihaza gönderiliyormuş gibi gösterir, ancak her zaman giden bağlantıyı yapan cihazdır.
IoT hub bunu iki şekilde yapıyor:
- Cihazın uç noktasına veri göndererek
/devices/{deviceId}/messages/devicebound
. Bu, sıraya veya konu aboneliğine benzer bir AMQP mesajlaşma uç noktasıdır. Cihaz, komutları okurken, gerekirse temel AMQP protokolünün bir parçası olan, alındı makbuzunu onaylamalıdır. Bu, MQTT ile aynı şekilde çalışır ve https geçerli bir geri dönüştür. API tüm bunları sizin için tamamlar. Esasen aynı temel mesaj protokolü etrafında bir API sarıcı olan 'doğrudan yöntemler' gibi ek kavramlar vardır
- Sunucu tarafı aygıt ikizini kullanarak, özellikleri aygıt ve sunucu arasında senkronize olarak mantıklı tutmanın bir yoludur. Aygıt ikizinde bir özellik ayarlarsınız ve cihaz senkronize edildiğinde bu özellik cihazla senkronize edilir. Bu daha az ileti tabanlıdır ve LWM2M cihaz yönetimi protokolünün üzerine kurulmuştur.
AMQP (veya MQTT) protokolünün bir parçası olarak bir çok 'yoklama', bağlantı, bağlantı paylaşımı, makbuz, vb. İlgilenilmelidir. Bu nedenle, yukarıdakiler oldukça basitleştirilmiştir, ancak yinelemek için IoT Hub, cihazınızdaki bir ip adresine / bağlantı noktasına veri (hiç) denemez ve göndermez.