Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» MQTT. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ, Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ примСнСния, основныС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ MQTT Protocol. Features, applications and basic procedures

This article discusses the MQTT (Message Queue Telemetry Transport) protocol of the Internet of things, overview protocol peculiar properties, possible applications. Messaging pattern which is called publish-subscriber are described. Contains an analysis of the information elements and messages. Actuality of the subject is due to the variety of existing protocols, Internet of Things standards and the lack of established terminology, describes the concept as a whole. Relevance of the topic is due to the rapid development of publish-subscriber architecture for which the most characteristic is the MQTT protocol.

Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt

Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» MQTT – Message Queuing Telemetry Transport – ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ сообщСний с тСлСмСтричСскими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΡ‚ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, влаТности, освСщСнности ΠΈ Π΄Ρ€.

MQTT Π±Ρ‹Π» ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π² 1999 Π³. Π­Π½Π΄ΠΈ Π‘Ρ‚Π°Π½Π΄Ρ„ΠΎΡ€Π΄ΠΎΠΌ-ΠšΠ»Π°Ρ€ΠΊΠΎΠΌ Π² качСствС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹ слуТил для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ состоянии Π½Π΅Ρ„Ρ‚Π΅ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° ΠΈ Π³Π°Π·ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° вСлась ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ IBM для Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚Ρ€ΡƒΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° ΠΊΡ€ΡƒΠΏΠ½Π΅ΠΉΡˆΠ΅ΠΉ амСриканской нСфтяной ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ConocoPhillips. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… создания диспСтчСрской систСмы управлСния ΠΈ сбора Π΄Π°Π½Π½Ρ‹Ρ… (SCADA) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ сбор самой Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ: состояниС насосов, Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° подшипников, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², состояниС ΠΊΠ»Π°ΠΏΠ°Π½ΠΎΠ², ΡƒΡ€ΠΎΠ²Π½ΠΈ Π² Π±Π°ΠΊΠ°Ρ… ΠΈ Ρ‚.Π΄. ΠŸΡ€ΠΈ этом Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ ΡƒΡ‡Π΅ΡΡ‚ΡŒ Π΄ΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΈΠ·Π½Ρƒ ΠΊΠ°Π½Π°Π»ΠΎΠ² связи ΠΈ ΡƒΠ·ΠΊΡƒΡŽ полосу пропускания. Ни ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΠ» ΠΏΠΎΠ΄ эти Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ трСбования ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ: качСство обслуТивания, двусторонняя связь, эффСктивноС использованиС полосы пропускания [2].

Π’ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» MQTT Π±Ρ‹Π» ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ консорциумом OASIS (Organization for the Advancement of Structured Information Standards) Π² октябрС 2014 Π³. Π”Π°Π½Π½Ρ‹ΠΉ стандарт находится Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ доступС [3].

Π’ июнС 2016 Π³. стандарт Π±Ρ‹Π» ΠΏΡ€ΠΈΠ·Π½Π°Π½ ΠœΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ стандартизации (ISO). MQTT Version 3.1.1 Π±Ρ‹Π» зарСгистрирован тСхничСским ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ΠΎΠΌ ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ тСхнологиям ISO (JTC1) ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ ISO/IEC 20922 [4].

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Ρ‚Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MQTT:

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ «ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ-подписчик»

ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° «ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ-подписчик» ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрного ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹, ΠΏΠΎΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠ΅ сообщСния (ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΠΈ, Publisher), ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ сообщСния (подписчики, Subscriber), ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹. Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² Ρ‚Ρ€Π΅Ρ… плоскостях:

Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒ ΠΈ подписчик Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ сообщСния Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π½Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ прямой ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚, ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ Π·Π½Π°Ρ‚ΡŒ ΠΎ сущСствовании Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°. ΠšΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ управляСт ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ сообщСний ΠΎΡ‚ издатСля ΠΊ подписчику ΠΈ ΠΎΡ‚ подписчика ΠΊ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŽ Π±Ρ€ΠΎΠΊΠ΅Ρ€ (Broker). РаспараллСливаниС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€Π΅ являСтся Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° взаимодСйствия «ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ-подписчик».

MQTT-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ – это устройство, оснащСнноС ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ стСк TCP/IP. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MQTT доступны для большого числа языков программирования, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Android, Arduino, C, C++, C#, Go, iOS, Java, JavaScript, NET [5].

Π‘Ρ€ΠΎΠΊΠ΅Ρ€ являСтся основным элСмСнтом систСмы «ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ-подписчик». Он ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΏΡ€ΠΈΠ΅ΠΌ всСх сообщСний, ΠΈΡ… Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ, принятиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠΎΠΌΡƒ интСрСсны эти сообщСния, ΠΈ, Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅, Π·Π° пСрСсылку сообщСний всСм ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ-подписчикам.

Π‘Ρ€Π΅Π΄ΠΈ сСрвСрных Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ IBM WebSphere MQ [6]; ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ ПО Mosquitto[7]; Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, основанноС Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΌ сСрвисС Eurotech Everywhere Device Cloud [8]; Π»Π΅Π³ΠΊΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΈ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ сСрвСр emqttd, послСдняя вСрсия (0,17) позволяСт ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ 1,3 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π° соСдинСний [9]; Π±Ρ€ΠΎΠΊΠ΅Ρ€ HiveMQ [10], ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ.

Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ процСсс ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, мноТСство подписчиков ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ подписано Π½Π° Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹ ΠΈ Π² зависимости ΠΎΡ‚ этих подписок ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π½Π΅ ΠΎΠ±Ρ‰Π°ΡΡΡŒ с ΠΈΠ·Π΄Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. На рис. 1 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° схСма ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ «ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ-подписчик».

Π€ΠΎΡ€ΠΌΠ°Ρ‚ сообщСний ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MQTT

На рис. 2 прСдставлСн ΠΎΠ±Ρ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ сообщСний ΠΏΡ€ΠΎΠΊΠΎΠ»Π° MQTT. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ состоит ΠΈΠ· Π΄Π²ΡƒΡ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ²:

Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° фиксированной Π΄Π»ΠΈΠ½Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MQTT Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ»Π΅ΠΉ этого Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π°ΠΉΡ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ поля, Ρ‚Ρ€ΠΈ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ„Π»Π°Π³Π°ΠΌΠΈ (DUP, QoS Level, RETAIN), Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ сообщСния. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π±Π°ΠΉΡ‚ слуТит для указания ΠΎΡΡ‚Π°Π²ΡˆΠ΅ΠΉΡΡ Π΄Π»ΠΈΠ½Ρ‹ сообщСния, которая складываСтся ΠΈΠ· Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ (Ссли ΠΎΠ½ Π΅ΡΡ‚ΡŒ) ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Π’ΠΈΠΏ сообщСния. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого поля опрСдСляСт Ρ‚ΠΈΠΏ сообщСния. Π’ Ρ‚Π°Π±Π». 1 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Ρ‚ΠΈΠΏΡ‹ сообщСний, ΠΈΡ… числовыС значСния, направлСния ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС.

Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π»Π°Π³ DUP. DUPlicate – Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сообщСния. Π­Ρ‚ΠΎΡ‚ Ρ„Π»Π°Π³ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŽ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΈΠΌ сообщСниС пСрСдаСтся ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ ΠΈΠΌ Ρ€Π°Π½Π΅Π΅. Π­Ρ‚ΠΎΡ‚ Ρ„Π»Π°Π³ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ ΠΊΠ°Π½Π°Π»Π°ΠΌ, Π³Π΄Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° потСря сигнала.

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π»Π°Π³ QoS. Как ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, основной ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MQTT являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ обслуТивания, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π»Π°Π³Π°. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» MQTT Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° CoAP (Constrained Application Protocol), сообщСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒΡΡ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· подтвСрТдСния.

QoS 0: At most once – Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ. Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ сообщСниС (PUBLISH) Π½Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€Π΅, Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ Π΅Π³ΠΎ для подписчика. Однако ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это сообщСниС Π±Ρ‹Π»ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ подписчику. Π˜Π½Ρ‹ΠΌΠΈ словами, подписчик ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ это сообщСниС, Π½ΠΎ это Π½Π΅ отслСТиваСтся ΠΈΠ·Π΄Π°Ρ‚Π΅Π»Π΅ΠΌ. ΠžΠΏΠΈΡΠ°Π½Π½Ρ‹ΠΉ сцСнарий (см. рис. 3) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚Π΅Ρ… случаСв, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹. НапримСр, ΠΏΡ€ΠΈ постоянном ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, ΠΊΠΎΠ³Π΄Π° потСря Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠ³ΠΎ измСрСния Π½Π΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚ сущСствСнной Ρ€ΠΎΠ»ΠΈ Π² ΠΎΠ±Ρ‰Π΅ΠΉ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π΅.

Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt

QoS 1: At least once – хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½. Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ сообщСниС Π½Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€Π΅ (PUBLISH). Π‘Ρ€ΠΎΠΊΠ΅Ρ€ сохраняСт это сообщСниС ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ Π΅Π³ΠΎ для подписчика. Волько послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ сообщСниС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ для подписчика, Π±Ρ€ΠΎΠΊΠ΅Ρ€ отсылаСт ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŽ (PUBACK). Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Ρ‚Π°ΠΊΠΎΠ³ΠΎ взаимодСйствия ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° рис. 4. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ подписчику, данная публикация Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ ΠΈ Π΄Π°Π»Π΅Π΅ подписчику. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, подписчик Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΠΎΠ΅ сообщСниС ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt

QoS 2: Exactly one – Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΎΠ΄ΠΈΠ½. Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ QoS обСспСчиваСт Π²Ρ‹ΡΡˆΡƒΡŽ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡŽ доставки сообщСний Π·Π° счСт использования Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ подтвСрТдСния ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ (PUBREC, PUBREL, PUBCOMP). Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ прСдставлСн Π½Π° рис. 5 ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ для ситуаций, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ². НапримСр, ΠΊΠΎΠ³Π΄Π° ΠΎΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ сообщСния срабатываСт сигнализация, Π²Ρ‹Π·ΠΎΠ² экстрСнных слуТб.

Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π»Π°Π³ RETAIN. Π”Π°Π½Π½Ρ‹ΠΉ Ρ„Π»Π°Π³ слуТит для ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ сохранСния послСднСго принятого Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠΌ сообщСния. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ„Π»Π°Π³ RETAIN=1 Π² сообщСнии PUBLISH ΠΎΡ‚ издатСля сообщаСт Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сообщСниС ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ, ΠΊΠΎΠ³Π΄Π° Π½ΠΎΠ²Ρ‹ΠΉ подписчик присоСдинится ΠΊ Ρ‚Π΅ΠΌΠ΅, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅ΠΌΡƒ это сообщСниС.

Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt

На рис. 6 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ сцСнарий, описанный Π²Ρ‹ΡˆΠ΅.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Рассмотрим Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ процСсс установлСния соСдинСния, посылки ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ° сообщСний (см. рис. 7).

Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt

УстановлСниС соСдинСния начинаСтся с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ сообщСния CONNECT, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ:

Π‘Ρ€ΠΎΠΊΠ΅Ρ€ Π² ΠΎΡ‚Π²Π΅Ρ‚ посылаСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ сообщСниС CONACK, состоящСС ΠΈΠ·:

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ MQTT ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ сообщСния. ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ происходит ΠΏΡƒΡ‚Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° сообщСния PUBLISH, Π³Π΄Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ:

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, послС получСния сообщСния PUBLISH Π±Ρ€ΠΎΠΊΠ΅Ρ€ отправляСт ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ (Ссли это Π·Π°Π΄Π°Π½ΠΎ QoS) ΠΈ пСрСсылаСт ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ сообщСниС всСм ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ подписаны Π½Π° Π΄Π°Π½Π½ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ сообщСния с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, MQTT-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ сначала ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΈΡ… ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ сообщСния SUBSCRIBE. Π”Π°Π½Π½ΠΎΠ΅ сообщСниС состоит ΠΈΠ· Π΄Π²ΡƒΡ… частСй:

Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ MQTT принята иСрархичСская структура построСния Ρ‚Π΅ΠΌ, поэтому для удобства ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚.Π½. wildcard-символы, благодаря ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ подписчик ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° всС ΠΏΠΎΠ΄Ρ‚Π΅ΠΌΡ‹ Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΌΡ‹ (символ #) Π»ΠΈΠ±ΠΎ Ρ‚Π΅ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ уровня (символ +).

Π’ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° сообщСниС SUBSCRIBE Π±Ρ€ΠΎΠΊΠ΅Ρ€ отправляСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ SUBACK, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ сообщаСт ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ подписки (ΡƒΡΠΏΠ΅ΡˆΠ½Π°Ρ ΠΈΠ»ΠΈ Π½Π΅Ρ‚).

Π’Π°ΠΊΠΆΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ‚Π΅ΠΌΡ‹, которая большС Π½Π΅ прСдставляСт для Π½Π΅Π³ΠΎ интСрСса, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ² Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ сообщСниС UNSUBSCRIBE, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π° данная Ρ‚Π΅ΠΌΠ°.

Π‘Ρ€ΠΎΠΊΠ΅Ρ€ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΠ°Π· ΠΎΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎ этой Ρ‚Π΅ΠΌΠ΅ сообщСниСм UNSUBACK.

ΠŸΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассмотрим спортивныС прилоТСния, устанавливаСмыС Π½Π° смартфон. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС эти прилоТСния, ΠΏΠΎΠΌΠΈΠΌΠΎ сбора статистичСских Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ динамичСски ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ мСстополоТСниС спортсмСна. Π­Ρ‚Π° функция особСнно вострСбована Π½Π° массовых спортивных мСроприятиях, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΌΠ°Ρ€Π°Ρ„ΠΎΠ½, дистанции Ρ‚Ρ€ΠΈΠ°Ρ‚Π»ΠΎΠ½Π° ΠΈΠ»ΠΈ вСлосипСдныС сорСвнования.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΎΠ΄ΠΈΠ½ Π±Ρ€ΠΎΠΊΠ΅Ρ€, ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ этих ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² с использованиСм ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MQTT.

На рис. 8 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° упрощСнная схСма ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MQTT ΠΌΠ΅ΠΆΠ΄Ρƒ участниками с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚Π΅ΠΌ. На Π½Π΅ΠΉ Π±Π΅Π³ΡƒΠ½ (ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ) с установлСнным ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ Π½Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ своСм Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ мСстополоТСнии («ΠΌΠ°Ρ€Π°Ρ„ΠΎΠ½/спортсмСны/имя/GPS»).

Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt

АналитичСскоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ подписано Π½Π° Ρ‚Π΅ΠΌΡ‹ с мСстополоТСниСм ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π±Π΅Π³ΡƒΠ½Π° ΠΈ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… участников с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рассмотрСнных Π²Ρ‹ΡˆΠ΅ wildcard-символов («ΠΌΠ°Ρ€Π°Ρ„ΠΎΠ½/спортсмСны/+/GPS»), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ эти Π΄Π°Π½Π½Ρ‹Π΅ для Π°Π½Π°Π»ΠΈΠ·Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, скорости, ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ расстояния, Π° ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹ Π½Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€Π΅ («ΠΌΠ°Ρ€Π°-Ρ„ΠΎΠ½/спортсмСны/имя/дистанция_Π²Ρ€Π΅ мя»). Π‘ΠΎΠ»Π΅Π»ΡŒΡ‰ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡƒΠ·Π½Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ мСстополоТСниС Π±Π΅Π³ΡƒΠ½Π° ΠΈ врСмя прибытия Π² Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΈΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ прилоТСния ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ подписано Π½Π° Ρ‚Π΅ΠΌΡ‹ с мСстополоТСниСм, ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ («ΠΌΠ°Ρ€Π°Ρ„ΠΎΠ½/спортсмСны/#») ΠΈ Π² Π²ΠΈΠ΄Π΅ графичСского интСрфСйса прСдставляСт эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм слуТСбной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ классов обслуТивания ΠΈ иСрархичСская структура Ρ‚Π΅ΠΌ ΡΠ²Π»ΡΡŽΡ‚ΡΡ нСоспоримыми достоинствами ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MQTT, Ρ‡Ρ‚ΠΎ подтвСрТдаСтся большим Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ΠΌ ΠΊΠ°ΠΊ клиСнтского, Ρ‚Π°ΠΊ ΠΈ сСрвСрного ПО, Π² Ρ‚ΠΎΠΌ числС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ПО. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° «ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ-подписчик» Π²Ρ‹Π΄Π²ΠΈΠ³Π°Π΅Ρ‚ трСбования ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ сСтСвому ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ – Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎ сути своСй обСспСчиваСт ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ наблюдаСм сдвиг ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ ΠΎΡ‚ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° транспортном ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» MQTT: ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Message Queuing Telemetry Transport (MQTT) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π»Π΅Ρ‚, Π½ΠΎ сСйчас ΠΎΠ½ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½ благодаря Π²Π·Ρ€Ρ‹Π²Π½ΠΎΠΌΡƒ росту IoT: ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅, ΠΈ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹Π΅ устройства Π²Π½Π΅Π΄Ρ€ΡΡŽΡ‚ распрСдСлённыС сСти ΠΈ Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹Π΅ вычислСния (edge computing), Π° устройства с постоянной трансляциСй Π΄Π°Π½Π½Ρ‹Ρ… становятся Ρ‡Π°ΡΡ‚ΡŒΡŽ повсСднСвной ΠΆΠΈΠ·Π½ΠΈ.

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π»Ρ‘Π³ΠΊΠΈΠ΅, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΈ доступныС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ станут Π΅Ρ‰Ρ‘ Π²Π°ΠΆΠ½Π΅Π΅. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ приводится ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π² MQTT: ΠΊΠ°ΠΊ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сСйчас ΠΈ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

НСбольшоС вступлСниС

MQTT β€” это ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ-подписчик (pub/sub). ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π² 1999 Π³ΠΎΠ΄Ρƒ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ Π­Π½Π΄ΠΈ Бтэнфорд-ΠšΠ»Π°Ρ€ΠΊ ΠΈΠ· IBM ΠΈ АрлСн НиппСр ΠΈΠ· Cirrus Link. Они рассматривали MQTT ΠΊΠ°ΠΊ способ поддСрТания связи ΠΌΠ΅ΠΆΠ΄Ρƒ машинами Π² сСтях с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ пропускной ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ»ΠΈ нСпрСдсказуСмой связью. Одним ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π΅Π³ΠΎ использования Π±Ρ‹Π»ΠΎ обСспСчСниС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π½Π΅Ρ„Ρ‚Π΅ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΈ с Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ звСньями Ρ‡Π΅Ρ€Π΅Π· спутники.

Π‘ ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ суровых условий эксплуатации ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» сдСлан малСньким ΠΈ Π»Ρ‘Π³ΠΊΠΈΠΌ. Он ΠΈΠ΄Π΅Π°Π»Π΅Π½ для устройств слабой мощности ΠΈ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. К ΠΈΡ… числу сСйчас относятся ΠΈ вСздСсущиС смартфоны, ΠΈ постоянно растущСС число Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹Ρ… устройств.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, MQTT стал ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ устройствами с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ CPU ΠΈ/ΠΈΠ»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ для сСтСй с Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ ΠΈΠ»ΠΈ Π½ΠΈΠ·ΠΊΠΎΠΉ пропускной ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ, нСпрСдсказуСмой ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ»ΠΈ высокой Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ. ИмСнно поэтому MQTT извСстСн ΠΊΠ°ΠΊ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ транспорт для IoT. Он построСн Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ TCP/IP, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Π²Π»Π΅Π½ΠΈΠ΅ MQTT-SN для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ Bluetooth, UDP, ZigBee ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… сСтях IoT, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ TCP/IP.

MQTT β€” Π½Π΅ СдинствСнный Π² своём Ρ€ΠΎΠ΄Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями pub/sub Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½ΠΎ ΠΎΠ½ ΡƒΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… срСдах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ зависят ΠΎΡ‚ мСТмашинной связи. Π‘Ρ€Π΅Π΄ΠΈ Π΅Π³ΠΎ свСрстников β€” Web Application Messaging Protocol, Streaming Text-Oriented Messaging Protocol ΠΈ Alternative Message Queueing Protocol.

MQTT β€” Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния с Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹ΠΌΠΈ ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ устройствами ΠΈ прилоТСниями, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹, смартфоны ΠΈ устройства IoT.

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ MQTT: основы

БистСма связи, построСнная Π½Π° MQTT, состоит ΠΈΠ· сСрвСра-издатСля, сСрвСра-Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ настроСк ΠΏΠΎ количСству ΠΈΠ»ΠΈ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ подписчиков, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ… сообщСния. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, подписчикам Π½Π΅ трСбуСтся настройка Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ издатСля. Π’ систСмС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠ², Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‰ΠΈΡ… сообщСния.

Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt. Π€ΠΎΡ‚ΠΎ Для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ mqtt

MQTT прСдоставляСт способ создания ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΊΠ°Π½Π°Π»ΠΎΠ² связи β€” своСго Ρ€ΠΎΠ΄Π° Π²Π΅Ρ‚Π²ΡŒ с Π»ΠΈΡΡ‚ΡŒΡΠΌΠΈ. Всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Ρƒ издатСля Π΅ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ для распространСния срСди ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², сообщСниС сопровоТдаСтся ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ΠΌ контроля доставки. ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π±ΠΎΠ»Π΅Π΅ высокого уровня ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ сообщСниС, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ сообщСния, относящиСся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ Π΄Π²ΡƒΠΌ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ ΠΊΠ°Π½Π°Π»Π°ΠΌ, Β«ΠΎΡ‚Π²Π΅Ρ‚Π²Π»ΡΡŽΡ‰ΠΈΠΌΡΡΒ» Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΎΠ±ΠΌΠ΅Π½ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΎΡ‚ Π΄Π²ΡƒΡ… Π±Π°ΠΉΡ‚ Π΄ΠΎ 256 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° MQTT:

Π›ΡŽΠ±Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠΌ MQTT, Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ MQTT являСтся Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ для получСния исходного содСрТимого Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сообщСниС. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это выглядит с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ably ΠΈ JavaScript:

Π‘Ρ€ΠΎΠΊΠ΅Ρ€Ρ‹ MQTT ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Ρ‚ΡŒ сообщСния, связанныС с ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… подписчиков. Π’ этом случаС сообщСния Π±ΡƒΠ΄ΡƒΡ‚ Π»ΠΈΠ±ΠΎ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Ρ‹, Π»ΠΈΠ±ΠΎ сохранСны, Π² зависимости ΠΎΡ‚ инструкций Π² ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌ сообщСнии. Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° Π½ΠΎΠ²Ρ‹ΠΌ Π°Π±ΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ самая послСдняя записанная Ρ‚ΠΎΡ‡ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΆΠ΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎ MQTT ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ бСзопасности ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ тСкстом, ΠΈΠ½Π°Ρ‡Π΅ Π½Π΅ поддСрТиваСтся аутСнтификация ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ бСзопасности. Π’ΠΎΡ‚ Π³Π΄Π΅ вступаСт Π² ΠΈΠ³Ρ€Ρƒ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ SSL, помогая Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Π»ΠΊΠΈ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² MQTT ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Ably Π½Π° Ρ‚ΠΎΠΊΠ΅Π½Π°Ρ…, Ссли Π²Ρ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ свой ΠΊΠ»ΡŽΡ‡ API фактичСскому ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ MQTT (Π² случаС MQTT Π±Π΅Π· SSL Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ API ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ тСкстом). ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΠΊΠ΅Π½Ρ‹:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ MQTT: Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅

Богласно IBM, MQTT ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ свойствами:

Одной ΠΈΠ· ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… характСристик MQTT являСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠ°Π½Π°Π»ΠΎΠ²: ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… обрабатываСтся ΠΊΠ°ΠΊ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠšΠ°Π½Π°Π»Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ сообщСния, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для Π½Π΅Π³ΠΎ. ΠžΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ ΠΊΠ°Π½Π°Π»Ρ‹ ΠΊΠ°ΠΊ ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ, MQTT выполняСт всС Π²ΠΈΠ΄Ρ‹ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ связи, Π² Ρ‚ΠΎΠΌ числС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ сообщСний Π½Π° основС Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ β€” Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΈΠ»ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ β€” ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ сообщСний MQTT

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° Π΄Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоит ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ сообщСниС ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ MQTT:

Π“Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ MQTT?

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ прилоТСния IoT Π½Ρ‹Π½Π΅ Π²Π½Π΅Π΄Ρ€ΡΡŽΡ‚ΡΡ Π² ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Ρ… ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°Ρ…, MQTT ΠΏΠΎΠΏΠ°Π» Π² Ρ†Π΅Π½Ρ‚Ρ€ внимания ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ, простой ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ способ развёртывания распрСдСлённых вычислСний ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ IoT для Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Π±Π°Π·Ρ‹ β€” ΠΊΠ°ΠΊ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ, Ρ‚Π°ΠΊ ΠΈ Π½Π° ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠΌ Ρ€Ρ‹Π½ΠΊΠ°Ρ….

Как ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅, MQTT β€” лСгковСсный ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями, построСнный для Π½Π΅Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹Ρ… сСтСй ΠΈ устройств с ограничСниями Π½Π° источник питания ΠΈ CPU. Однако это Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ связь с ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² β€” Π΅Π³ΠΎ СдинствСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. MQTT прСдоставляСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ обслуТивания для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² инфраструктуры IoT, ΠΎΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅ΠΉΡΡ Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎ управлСния ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹ΠΌΠΈ машинами:

Когда Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ MQTT?

Π£ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π΅ΡΡ‚ΡŒ Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² для проСктирования ΠΈ развёртывания Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΊΠ°Π½Π°Π»ΠΎΠ² связи IoT, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ MQTT, HTTP, CoAP, WebSockets (Ссли позволяСт CPU/батарСя) ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. ЯвляСтся Π»ΠΈ MQTT Π»ΡƒΡ‡ΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ, зависит ΠΎΡ‚ оборудования ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ прилоТСния.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ для срСд с Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ Π½ΠΈΠ·ΠΊΠΎΠΉ пропускной ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» MQTT ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ довольно Π½Π΅Π³ΠΈΠ±ΠΊΠΈΠΌ Π² своём стрСмлСнии ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π°ΠΉΡ‚. НапримСр, спСцификация опрСдСляСт всСго ΠΏΡΡ‚ΡŒ сообщСний ΠΎΠ± ошибкС, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сСрвСр ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΠΈΡ‚ΡŒ соСдинСниС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ΅ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ/ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΈΠ»ΠΈ нСприСмлСмая вСрсия ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°). Если сСрвСр Ρ…ΠΎΡ‡Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΈΠ½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π΅ΠΌΡƒ Π½Π΅ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ. Π₯ΡƒΠΆΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ послС запуска соСдинСния, Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° для сообщСния ΠΎΠ± ошибкС Π²ΠΎΠΎΠ±Ρ‰Π΅. Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠΆΠ°Ρ‚ΡŒ ΠΏΠ»Π΅Ρ‡Π°ΠΌΠΈ ΠΈ Ρ€Π΅Π·ΠΊΠΎ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ TCP-соСдинСниС, оставив ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π±Π΅Π· понятия, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π΅Π³ΠΎ сбросили (ΠΈ Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ способа ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ сСтСвой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹). Для людСй, ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΡˆΠΈΡ… ΠΊ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΈ простым Π² ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ (хотя ΠΈ ΠΌΠ΅Π½Π΅Π΅ экономичным ΠΏΠΎ пропускной способности) ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ pub/sub, Ρ‚Π°ΠΊΠΎΠΉ спартанский ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌ.

MQTT часто упоминаСтся вмСстС с HTTP, поэтому компания Google ΠΏΡ€ΠΎΠ²Π΅Π»Π° исслСдованиС, сравнив ΠΈΡ… ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ°, ΠΎΠ±ΡŠΡ‘ΠΌΡƒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π²Π°ΠΆΠ½Ρ‹ΠΌ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ. MQTT занял ΠΏΠ΅Ρ€Π²ΠΎΠ΅ мСсто Π² тСстах Google, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² условиях, ΠΊΠΎΠ³Π΄Π° соСдинСниС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π½Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ.

HTTP ΠΈ MQTT ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ IoT ΠΈΠ·-Π·Π° достаточно ΠΌΠ°Π»ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΡ‘ΠΌΠ° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, Π½ΠΈΠ·ΠΊΠΈΡ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ Π±Π°Ρ‚Π°Ρ€Π΅Π΅ ΠΈ памяти.

CoAP β€” Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ часто ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ с MQTT для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ систСм IoT. Они ΠΏΠΎΡ…ΠΎΠΆΠΈ, Π½ΠΎ Π΅ΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Π΅ различия. MQTT β€” это ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Β«ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΒ», Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ CoAP β€” это Π² основном ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Β«ΠΎΠ΄ΠΈΠ½ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒΒ» для связи ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСром ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя CoAP прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, обнаруТСния ΠΈ согласования содСрТимого, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Ρƒ MQTT.

Π’ Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Server-Sent Events β€” Ρ‚ΠΎΠΆΠ΅ подходящий Π²Π°Ρ€ΠΈΠ°Π½Ρ‚.

Как быстро Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ MQTT

Eclipse Mosquitto β€” open source Π±Ρ€ΠΎΠΊΠ΅Ρ€ MQTT

Eclipse Mosquitto β€” Π±Ρ€ΠΎΠΊΠ΅Ρ€ сообщСний с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ (Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ EPL/EDL), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ MQTT вСрсий 5.0, 3.1.1 ΠΈ 3.1. Mosquitto Π»Ρ‘Π³ΠΊΠΈΠΉ ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для использования Π½Π° всСх устройствах: ΠΎΡ‚ ΠΌΠ°Π»ΠΎΠΌΠΎΡ‰Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠΏΠ»Π°Ρ‚Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… сСрвСров.

MQTT.js

MQTT.js β€” это клиСнтская Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MQTT, написанная Π½Π° JavaScript для Node.js ΠΈ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ сообщСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MQTT.js:

MQTTnet

Установка ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° MQTT:

ПослС настройки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° MQTT ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ соСдинСниС. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ сСрвСру:

ΠŸΡ€ΠΈΡ‘ΠΌ входящих сообщСний:

Для поставщиков ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ уровня Π΅ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ MQTT-сСрвСры для ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ прилоТСниями, ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹ΠΌΠΈ машинами ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ спСктром Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования IoT. Π’ этом руководствС говорится, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ MQTT Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ уровня.

Π§Ρ‚ΠΎ насчёт ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ?

Когда Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ MQTT, слСдуСт ΡƒΡ‡Π΅ΡΡ‚ΡŒ Π΄Π²Π° сообраТСния: 1) ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π»ΠΈ это ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»; 2) нСзависимо ΠΎΡ‚ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, ΠΊΠ°ΠΊΠΈΠ΅ инфраструктура ΠΈ сСтСвыС возмоТности Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²ΠΎΠ·Ρ€ΠΎΡΡˆΠ΅Π³ΠΎ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ устройствами ΠΏΠΎ MQTT.

Lightweight Machine-to-Machine (LWM2M) β€” Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСстС с MQTT Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ прСдприятия. По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с MQTT, ΠΎΠ½ ΠΈΠ½ΠΎΠ³Π΄Π° Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π΄ΠΎΠ»Π³ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… систСм IoT. MQTT идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΏΡ€ΠΎΠ±Π½ΠΎΠ³ΠΎ запуска IoT Π±Π΅Π· особых усилий, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ LWM2M прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для долгосрочной ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ инфраструктуры. LWM2M Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт прСвосходныС инструмСнты управлСния устройствами, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ ΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ дСйствия Π½Π° устройствах. Для прСдприятий с большим количСством нСуправляСмых устройств, ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… большиС ΠΎΠ±ΡŠΡ‘ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, LWM2M являСтся Π»ΡƒΡ‡ΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… развёртываниях IoT, поэтому ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ MQTT Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, MQTT Π±ΠΎΠ»Π΅Π΅ распространён ΠΈ Ρƒ Π½Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎ возмоТностях инфраструктуры. Когда Ρ€Π΅Ρ‡ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ сСрвСра, Ρ‚ΠΎ Ρ€Π΅Π΄ΠΊΠΎ ΡƒΠ·ΠΊΠΈΠΌ мСстом являСтся количСство ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… сСрвСров/Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠ² MQTT ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ тысячи ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π½ΠΎ ΠΊΠ°ΠΊΠΎΠ²Π° рабочая Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, нСобходимая для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° сообщСния послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ сСрвСр MQTT ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» фактичСскиС Π΄Π°Π½Π½Ρ‹Π΅? Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π΅ΡΡ‚ΡŒ всСвозмоТныС ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΈΠ· Π½Π΅Ρ‘, интСграция с сСрвСром, распрСдСлСниС ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ рСсурсами для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ Ρ‚. Π΄. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° машина пСрСстаёт ΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ с Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ, Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сСрвСры, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ балансировкС Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, синхронизации сообщСний ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹ΠΌΠΈ ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ сСрвСрам, ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½ΠΎΠΌ доступС ΠΊ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° нСзависимо ΠΎΡ‚ срока соСдинСния ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ сСрвСра, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ β€” список продолТаСтся ΠΈ продолТаСтся.

Π’Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Engineering нашСго Π±Π»ΠΎΠ³Π°. Π’ частности, см. ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… слоТностях обслуТивания ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎΠΉ инфраструктуры ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Какова Π½Ρ‹Π½Π΅ΡˆΠ½ΡΡ ситуация с MQTT?

Π’ Π°ΠΏΡ€Π΅Π»Π΅ 2019 Π³ΠΎΠ΄Π° OASIS выпустила MQTT v5.0 Π² качСствС ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ стандарта. OASIS β€” это нСкоммСрчСский консорциум, состоящий ΠΈΠ· 600 ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ-Ρ‡Π»Π΅Π½ΠΎΠ² ΠΈ 5000 ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… участников.

ВСрсия 5.0 Π²Π²ΠΎΠ΄ΠΈΡ‚ ряд Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ интСрСс для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² систСм Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π­Ρ‚ΠΈ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ совмСстимы с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌΠΈ вСрсиями MQTT. Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ…:

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ мноТСству ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… устройств ΠΈ сСрвисов Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅, MQTT Π½Π°ΡˆΡ‘Π» использованиС Π² ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ инфраструктурС всСх Ρ„ΠΎΡ€ΠΌ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ². Π­Ρ‚ΠΎ смартфоны ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Ρ‹, систСмы ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° энСргии, мСдицинскиС устройства, нСфтяныС Π²Ρ‹ΡˆΠΊΠΈ ΠΈ Π±ΡƒΡ€ΠΎΠ²Ρ‹Π΅ установки, Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Π°Ρ ΠΈ аэрокосмичСская ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΡΡ‚ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ ΠΈ систСмы машинного зрСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΏΠΎΠ³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎ-Ρ€Π°Π·Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚Π°Ρ…, ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²Π΅, Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ поставок, Ρ€ΠΎΠ·Π½ΠΈΡ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ€Π³ΠΎΠ²Π»Π΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

MQTT ΠΈ Ably

MQTT β€” популярный, ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Ρ€Π΅Π»Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ». Он ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для мноТСства ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для развёртывания IoT. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ производство ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ расти ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ, MQTT Π½Π΅ всСгда Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° для удовлСтворСния Π²Π°ΡˆΠΈΡ… потрСбностСй Π² ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅. Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° нашим Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ Realtime Concepts для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°Ρ… ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ подходят вашСй ситуации.

Ably прСдоставляСт Π±Ρ€ΠΎΠΊΠ΅Ρ€ ΠΈ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MQTT с трансляциСй Π½Π° собствСнный ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Ably Π² ΠΎΠ±Π΅ стороны, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ систСмами ΠΈ соСдинСниями. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ WebSockets, HTTP, SSE, gRPC (Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅), STOMP, AMQP ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ распрСдСлённой инфраструктуры ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π•ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 40 клиСнтских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ SDK ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *