Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ MQTT

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ я стал стал ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡƒΠΌΠ½Ρ‹ΠΉ Π΄ΠΎΠΌ я ΠΎΡ‡Π΅Π½ΡŒ быстро столкнулся с Π²Π΅Ρ‰ΡŒΡŽ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ MQTT. ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ устройства ΠΌΠΎΠ³ΡƒΡ‚ «Ρ€Π°Π·Π³ΠΎΠ²Π°Ρ€ΠΈΠ²Π°Ρ‚ΡŒ с MQTT», Π° систСма ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ «Π·Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΠ· MQTT» Π΄Π°Π½Π½Ρ‹Π΅. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ «ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° сообщСний Π² Ρ‚ΠΎΠΏΠΈΠΊΠΈ». Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΌΠ½Π΅ Π±Ρ‹Π»ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ нСпонятно Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊ это всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ Π·Π°Ρ‡Π΅ΠΌ это. Как оказалось, это всС Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ слоТно.

Π― написал этот тСкст ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для людСй ΠΊΡ‚ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с MQTT.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ возникновСния MQTT

MQTT β€” это Ρ‚Π°ΠΊΠΎΠΉ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΡƒΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ устройства. Π•ΡΡ‚ΡŒ русский язык ΠΈ люди ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π³ΠΎΠ²Π°Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° этом языкС ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Π΅ΡΡ‚ΡŒ «ΡΠ·Ρ‹ΠΊ» MQTT β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ устройства ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π³ΠΎΠ²Π°Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° этом языкС ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… использовалась спутниковыС Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈ сСйчас ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΡ€ΠΎΠ³ΠΈΠ΅, Π° 20 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ Π±Ρ‹Π»ΠΈ ΠΎΡ‡Π΅Π½ΡŒ-ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΡ€ΠΎΠ³ΠΈΠ΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ тСхнология ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Π»Π° Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ экономной β€” ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ мСньшС Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» MQTT смог ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эта Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈ стал ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… отраслях. ΠŸΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΠΈ микропроцСссоры ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ всС дСшСвлС ΠΈ это ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Ρ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ стала ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΊΡƒΡ‡Π° Ρ€Π°Π·Π½Ρ‹Ρ… устройств Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ «ΡƒΠΌΠ°» (для этого ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ красивый Ρ‚Π΅Ρ€ΠΌΠΈΠ½ IoT β€” Internet of Things β€” Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π’Π΅Ρ‰Π΅ΠΉ). Π£ΠΌΠ½Ρ‹ΠΉ Ρ‡Π°ΠΉΠ½ΠΈΠΊ, ΡƒΠΌΠ½Ρ‹ΠΉ ΠΎΠ±ΠΎΠ³Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ β€” эти устройства ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎ сСбя (какая сСйчас Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π°, сколько устройство Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚), Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅.

Π•ΡΡ‚ΡŒ мноТСство устройств Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ β€” ΠΊΠ°ΠΊ ΠΈΠΌ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΈ с сСрвСрами ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°? МоТно Π²Π·ΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ язык (ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ») ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ Ρ‚Π°ΠΊ ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚. Но Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» MQTT ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для общСния Ρ€Π°Π·Π½Ρ‹Ρ… устройств ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. НСкоторыС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ MQTT Π² своих устройствах. MQTT популярСн Π² ΠΌΠΈΡ€Π΅ бСсплатных ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (Open Source).

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° MQTT Explorer

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с MQTT, Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ MQTT Explorer.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° бСсплатная. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Windows, Π½Π° macOS ΠΈ Π½Π° Linux.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ MQTT сСрвСру ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ всС Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ происходит.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€

MQTT Π±Ρ€ΠΎΠΊΠ΅Ρ€

MQTT β€” это ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр.

Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ β€” это MQTT сСрвСр. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ сСрвСр MQTT Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ MQTT Π±Ρ€ΠΎΠΊΠ΅Ρ€.

Π•ΡΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ популярная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Mosquitto β€” Ссли Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ‚ΠΎ Ρƒ вас появится Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ MQTT сСрвСр.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€

Π”Π°Π»Π΅ΠΊΠΎ Π½Π΅ всСгда Π½ΡƒΠΆΠ½ΠΎ самому Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ MQTT сСрвСр. МногиС систСмы сами ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡŽΡ‚ MQTT сСрвСр с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚.

ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹

К сСрвСру MQTT ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹. ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сообщСния ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ сообщСния. НСкоторыС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚, Π½ΠΎ достаточно часто ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈ Ρ‚ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅: ΠΈ отправляСт сообщСния ΠΈ ΡΠ»ΡƒΡˆΠ°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сообщСния.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠ³ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ MQTT сСрвСру Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ:

Π’ΠΎΠΏΠΈΠΊΠΈ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° сообщСний

Π˜Ρ‚Π°ΠΊ, Π΅ΡΡ‚ΡŒ MQTT Π±Ρ€ΠΎΠΊΠ΅Ρ€ β€” Ρ†Π΅Π½Ρ‚Ρ€ систСмы. Π•ΡΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊ этому Ρ†Π΅Π½Ρ‚Ρ€Ρƒ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π·Π°Π΄Π°Ρ‡Ρƒ. Π•ΡΡ‚ΡŒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ Π΅ΡΡ‚ΡŒ систСма ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°. Как с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MQTT Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ Π² систСму ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°?

Π”Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ сСрвСру MQTT. Π Π°Π· Π² 5 ΠΌΠΈΠ½ΡƒΡ‚ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ Π·Π°ΠΌΠ΅Ρ€ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ отправляСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π·Π°ΠΌΠ΅Ρ€Π° Π² сСрвСр MQTT. НапримСр, Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° 23.8 Β°C

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ Π² MQTT Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ Π΄Π²Π΅ Π²Π΅Ρ‰ΠΈ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, саму Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ, ΠΎΠ½Π° Π΅ΡΡ‚ΡŒ β€” 23.8. А Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ адрСс Ρ‚ΠΎΠΏΠΈΠΊΠ° Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π§Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ Ρ‚ΠΎΠΏΠΈΠΊ? Π§ΡƒΡ‚ΡŒ-Ρ‡ΡƒΡ‚ΡŒ ΠΎΡ‚ΠΎΠΉΠ΄Π΅ΠΌ Π² сторону. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ число 23.8 Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. МоТно ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ». Для этого Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ. НапримСр, c:\temperature\sensor.txt β€” Π² этом Ρ„Π°ΠΉΠ» ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ число 23.8

Π’ΠΎΠΏΠΈΠΊ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Ρ„Π°ΠΉΠ» β€” это располоТСниС ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ кусочка ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² MQTT сСрвСрС. Π”Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСниС 23.8 Π² Ρ‚ΠΎΠΏΠΈΠΊ temperature/sensor β€” Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ MQTT сСрвСр Π·Π½Π°Π΅Ρ‚ ΠΏΡ€ΠΎ это число.

ΠŸΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ Π·Π°Π΄Π°Ρ‡ΠΈ Ρ€Π΅ΡˆΠ΅Π»ΠΈ β€” Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ Π² MQTT сСрвСр.

Как ΠΆΠ΅ систСма ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° ΡƒΠ·Π½Π°Π΅Ρ‚ ΠΎ Ρ‚ΠΎΠΌ Ρ‡Ρ‚ΠΎ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ прислал Π½ΠΎΠ²ΡƒΡŽ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ? ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ сСрвСру MQTT систСма ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ β€” я Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ приходят Π² Ρ‚ΠΎΠΏΠΈΠΊ temperature/sensor MQTT сСрвСр Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ это ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΏΠΈΠΊ temperature/sensor ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ сСрвСр пСрСсылаСт это сообщСниС всСм ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ ΠΊΡ‚ΠΎ Π²Ρ‹Ρ€Π°Π·ΠΈΠ» ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ сообщСниС ΠΈΠ· этого Ρ‚ΠΎΠΏΠΈΠΊΠ° (это называСтся ΠΊΡ‚ΠΎ «ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π»ΡΡ» Π½Π° эти Ρ‚ΠΎΠΏΠΈΠΊΠΈ»)

Π‘ΠΈΠΌΠ²ΠΎΠ» Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠ°

ΠšΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ MQTT сСрвСру ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ список Ρ‚ΠΎΠΏΠΈΠΊΠΎΠ² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ Ρ…ΠΎΡ‡Π΅Ρ‚ «ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ» (Ρ‚.Π΅. ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ всС сообщСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π² эти Ρ‚ΠΎΠΏΠΈΠΊΠΈ)

ΠŸΡ€ΠΈ подпискС ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ символ Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠ°. НапримСр, Ссли ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° temperature/# Ρ‚ΠΎ этот ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ всС сообщСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π²ΠΎΡ‚ Π² Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚ΠΎΠΏΠΈΠΊΠΈ:

Π’Π°ΠΊ ΠΆΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Ρ‚ΠΎΠΏΠΈΠΊ # β€” это ΠΎΠ·Π½Ρ‡Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅ всС сообщСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ»Π΅Ρ‚Π°ΡŽΡ‚ Π² MQTT сСрвСр.

Retain Π€Π»Π°Π³

MQTT сСрвСр β€” это всСго лишь посрСдник ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ. ΠšΠ»ΠΈΠ΅Π½Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» сообщСниС Π² MQTT сСрвСр, сСрвСр пСрСслал это сообщСниС всСм ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ интСрСсно это сообщСниС ΠΈ сСрвСр Ρ‚ΡƒΡ‚ ΠΆΠ΅ Π·Π°Π±Ρ‹Π» ΠΏΡ€ΠΎ это сообщСниС. НовыС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊ MQTT сСрвСру ΡƒΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ это сообщСниС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€. Π•ΡΡ‚ΡŒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ Π΅ΡΡ‚ΡŒ систСма ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°. Π¨Ρ‚Π°Ρ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹. БистСма ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»Π°ΡΡŒ ΠΊ MQTT сСрвСру ΠΈ ΡΠ»ΡƒΡˆΠ°Π΅Ρ‚ всС сообщСния. Π”Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ ΠΊ MQTT сСрвСру ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 5 ΠΌΠΈΠ½ΡƒΡ‚ отправляСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ. ВсС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ прСкрасно β€” Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²Π» Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ, MQTT сСрвСр пСрСслал эту Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ Π² систСму ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° ΠΈ ΡƒΠΌΠ½Ρ‹ΠΉ Π΄ΠΎΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΠ» эту Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ Π² интСрфСйсС.

Но Ρ‚ΡƒΡ‚ происходит ситуация Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ систСму ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ°. Π£ΠΌΠ½Ρ‹ΠΉ Π΄ΠΎΠΌ пСрСзапустился, ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ ΠΊ MQTT сСрвСру, Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ Π² MQTT сСрвСрС Π½Π΅Ρ‚ (Ρ‚Π΅ сообщСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅ ΡƒΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ всСм ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ ΠΈ Π½ΠΈΠΊΡƒΠ΄Π° Π½Π° MQTT сСрвСрС Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ). Пока Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Π½Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ систСма ΡƒΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ° Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΈΠ· MQTT сСрвСра.

РСшСниС Ρ‚Π°ΠΊΠΎΠΉ ситуации β€” это Ρ„Π»Π°Π³ retain. ΠŸΡ€ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ сообщСния ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ это сообщСниС Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ с Ρ„Π»Π°Π³ΠΎΠΌ retain, Ρ‚.Π΅. сСрвСр Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ сообщСниС. Π’ этом случаС сСрвСр ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ сообщСниС, ΠΏΠ΅Ρ€Π΅ΠΏΡ€Π°Π²ΠΈΡ‚ Π΅Π³ΠΎ всСм ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ, Π½ΠΎ Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎ это сообщСниС, Π° оставляСт Π΅Π³ΠΎ Ρƒ сСбя ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ это ΠΆΠ΅ сообщСниСм всСм Π½ΠΎΠ²Ρ‹ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΊ MQTT сСрвСру.

Last will

Одна ΠΈΠ· интСрСсных Ρ„ΠΈΡˆΠ΅ΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MQTT β€” это ΡˆΡ‚ΡƒΠΊΠ° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Last will β€” Π·Π°Π²Π΅Ρ‰Π°Π½ΠΈΠ΅. Π•Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ «LWT» β€” Last Will and Testament.

Бтандартная Ρ€Π°Π±ΠΎΡ‚Π° β€” ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ MQTT сСрвСру ΠΈ всС врСмя остаСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ ΠΊ сСрвСру (сСрвСр «Π²ΠΈΠ΄ΠΈΡ‚» ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ).

Π—Π°Π΄Π°Ρ‡Π°. Π•ΡΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ β€” ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ β€” ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ всСгда ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ MQTT сСрвСру. Если этот ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ MQTT сСрвСру β€” это авария, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ Π»ΠΈΠ±ΠΎ с этим ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ, Π»ΠΈΠ±ΠΎ с ΠΊΠ°Π½Π°Π»ΠΎΠΌ связи. Как ΠΎΠ± этой Π°Π²Π°Ρ€ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹?

РСшСниС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅: ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ сСрвСру: «ΡΠ»ΡƒΡˆΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π° я ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΡƒΡΡŒ, Ρ‚Ρ‹, поТалуйста, Π²ΠΎΡ‚ Π² этот Ρ‚ΠΎΠΏΠΈΠΊ ΠΏΠΎΠ»ΠΎΠΆΠΈ Π²ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ΅ сообщСниС». Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅ «Π·Π°Π²Π΅Ρ‰Π°Π½ΠΈΠ΅» ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ ΠΊΠΎΠ³Π΄Π° этот ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ, MQTT сСрвСр выполняСт «ΠΏΠΎΡΠ»Π΅Π΄Π½ΡŽΡŽ волю» ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

НапримСр, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ сСрвСр ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСниС «offline» Π² Ρ‚ΠΎΠΏΠΈΠΊ «computers/my-desktop/status». И ΠΊΠΎΠ³Π΄Π° этот ΠΊΠ»ΠΈΠ΅Π½Ρ‚ отвалится MQTT сСрвСр ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ сообщСниС «offline» Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ‚ΠΎΠΏΠΈΠΊ. ΠšΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ, сказал MQTT сСрвСру Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π² Ρ‚ΠΎΠΏΠΈΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «offline» ΠΈ Ρ‚ΡƒΡ‚ ΠΆΠ΅ отправляСт Π² этот ΠΆΠ΅ Ρ‚ΠΎΠΏΠΈΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «online». Π’ΠΎΠ³Π΄Π° всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ интСрСсСн статус этого ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° этим Ρ‚ΠΎΠΏΠΈΠΊΠΎΠΌ β€” Ссли Ρ‚Π°ΠΌ «online» Π·Π½Π°Ρ‡ΠΈΡ‚ с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ всС Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Ссли «offline», Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°.

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

Как ΠΎΠ±Ρ‰Π°ΡŽΡ‚ΡΡ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ β€” ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» MQTT

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€

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

Π“Π»Π°Π²Π½Ρ‹Π΅ особСнности ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MQTT:

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MQTT

MQTT Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ IBM Π² 1999 Π³ΠΎΠ΄Ρƒ, ΠΈ ΠΏΠΎΠ½Π°Ρ‡Π°Π»Ρƒ использовался Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, для своих Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

Π’ ноябрС 2011 IBM совмСстно с ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Eurotech объявили ΠΎΠ± участии Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ Eclipse M2M ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΊΠΎΠ΄Π° MQTT Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Eclipse Paho.

Π’ 2013 Π³ΠΎΠ΄Ρƒ консорциум OASIS (Organization for the Advancement of Structured Information Standards) Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ процСсс стандартизации ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MQTT. Π”ΠΎ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° спСцификация ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π±Ρ‹Π»Π° ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄ бСсплатной Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ, ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠ°ΠΊ Eurotech (Ρ€Π°Π½Π΅Π΅ извСстный ΠΊΠ°ΠΊ Arcom), ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π² своих ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ….

Π’ октябрС 2014 Π³. OASIS ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ стандарт ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MQTT.

Π’ 2016 Π³. ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Π±Ρ‹Π» стандартизирован ΠœΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ стандартизации ISO ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½ΠΎΠΌΠ΅Ρ€ ISO/IEC 20922.

Π‘ 2014 Π³ΠΎΠ΄Π° интСрСс ΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ расти ΠΈ, судя ΠΏΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ Google Trends, Π½Π° сСгодняшний дСнь ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ интСрСс ΠΊ Modbus.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€
Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊ Google Trends

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ понятия

MQTT ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ. ОбмСн сообщСниями происходит Ρ‡Π΅Ρ€Π΅Π· Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ сСрвСр, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠΌ. Π’ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… условиях ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, ΠΈ вСсь ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ происходит Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°.

ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² Ρ€ΠΎΠ»ΠΈ поставщиков Π΄Π°Π½Π½Ρ‹Ρ… (Publisher) ΠΈ Π² Ρ€ΠΎΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ… (Subscriber). Π’ русском ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ эти Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ часто пСрСводят ΠΊΠ°ΠΊ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ ΠΈ подписчик, Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡŽ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€

Π’ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ MQTT ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, Ρ‡Π΅Ρ€Π΅Π· Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ·Π΅Π»

На ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ²Π΅Ρ€Ρ… TCP/IP ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ, Π±Π΅Π· нСобходимости использования VPN-Ρ‚ΠΎΠ½Π½Π΅Π»Π΅ΠΉ. Достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ€ΠΎΠΊΠ΅Ρ€ ΠΈΠΌΠ΅Π» Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ IP-адрСс ΠΈ всС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΊ Π½Π΅ΠΌΡƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ. ΠŸΡ€ΠΈ этом, ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ находится Π·Π° NAT. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ MQTT ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹, ΠΏΡ€ΠΎΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚Ρ‹ для установки соСдинСния Π½Π΅ трСбуСтся, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π² Modbus/TCP ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ сСрвСр (master), Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ прямой сСтСвой доступности.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚ MQTT-Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° для входящих TCP-соСдинСний β€” 1883. ΠŸΡ€ΠΈ использовании Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ SSL-ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΡ€Ρ‚ 8883.

Broker

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

Publisher/Subscriber

Для понимания Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Publisher ΠΈ Subscriber Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π΄Π°Ρ‚Ρ‡ΠΈΠΊ влаТности измСряСт Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ Π² ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ, ΠΈ Ссли ΠΎΠ½Π° ΠΎΠΏΡƒΡΡ‚ΠΈΠ»Π°ΡΡŒ Π½ΠΈΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ уровня, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΡƒΠ²Π»Π°ΠΆΠ½ΠΈΡ‚Π΅Π»ΡŒ Π²ΠΎΠ·Π΄ΡƒΡ…Π°.

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π΄Π°Ρ‚Ρ‡ΠΈΠΊ влаТности выступаСт Π² Ρ€ΠΎΠ»ΠΈ Publisher: Π΅Π³ΠΎ Π·Π°Π΄Π°Ρ‡Π° сводится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² сторону Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°. Π£Π²Π»Π°ΠΆΠ½ΠΈΡ‚Π΅Π»ΡŒ Π²ΠΎΠ·Π΄ΡƒΡ…Π° выступаСт Π² Ρ€ΠΎΠ»ΠΈ Subscriber: ΠΎΠ½ подписываСтся Π½Π° обновлСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ влаТности ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΡ‚ Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΡ€ΠΈ этом ΡƒΠ²Π»Π°ΠΆΠ½ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ сам Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ, Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΡƒΠ²Π»Π°ΠΆΠ½Π΅Π½ΠΈΠ΅.

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€
Publisher посылаСт Π΄Π°Π½Π½Ρ‹Π΅ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ, Subscriber подписываСтся Π½Π° обновлСния этих Π΄Π°Π½Π½Ρ‹Ρ…

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

Topic

Для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ сущностСй Π² MQTT ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠΏΠΈΠΊΠΈ, Π² русском ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ ΠΈΡ… Π΅Ρ‰Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ. Π’ΠΎΠΏΠΈΠΊΠΈ состоят ΠΈΠ· UTF8-символов, ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡƒΡŽ структуру, ΠΏΠΎΡ…ΠΎΠΆΡƒΡŽ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму Π² UNIX. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ сущности Π² чСловСкопонятном Π²ΠΈΠ΄Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠΏΠΈΠΊΠΎΠ² Π² MQTT

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт наглядно Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ, ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π±Π΅Π· нСобходимости Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ адрСс размСщСния Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ это сдСлано Π² Modbus.

Π’ΠΎΠΏΠΈΠΊΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ wildcard-синтаксис, Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΉ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π» с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой UNIX. Wildcard ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌ.

ΠžΠ΄Π½ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ wildcard обозначаСтся символом «+«.

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π½Ρ‹Ρ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Π²ΠΎ всСх помСщСниях Π² Π΄ΠΎΠΌΠ΅, подписчику Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° Ρ‚Π°ΠΊΠΎΠΉ Ρ‚ΠΎΠΏΠΈΠΊ:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠ½ ΠΏΠΎΠ΄ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… с Ρ‚Π°ΠΊΠΈΡ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ²:

ΠœΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ wildcard обозначаСтся символом «#«.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ получСния Π΄Π°Π½Π½Ρ‹Ρ… со всСх Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Π²ΠΎ всСх ΠΊΠΎΠΌΠ½Π°Ρ‚Π°Ρ… Π² Π΄ΠΎΠΌΠ΅:

Подписка Π½Π° Ρ‚Π°ΠΊΠΎΠΉ Ρ‚ΠΎΠΏΠΈΠΊ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с Ρ‚Π°ΠΊΠΈΡ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ²:

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ²

Для контроля доступа Π² MQTT прСдусмотрСна аутСнтификация ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Modbus, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Для контроля доступа ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ поля:

ClientId β€” (ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅) ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π”ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. ВСкущая вСрсия стандарта MQTT 3.1.1 позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ пустоС ΠΏΠΎΠ»Π΅ ClientId, Ссли Π½Π΅ трСбуСтся сохранСниС состояния ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Username β€” (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅) Π»ΠΎΠ³ΠΈΠ½ для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ UTF-8. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ. НапримСр, Π³Ρ€ΡƒΠΏΠΏΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ Π»ΠΎΠ³ΠΈΠ½ΠΎΠΌ/ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ.

Password β€” (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вмСстС с ΠΏΠΎΠ»Π΅ΠΌ Username, ΠΏΡ€ΠΈ этом Username ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· поля Password. ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ 65535 Π±Π°ΠΉΡ‚. Π’Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ имя ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, поэтому, Ссли Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌ сСтям, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SSL для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Как ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ MQTT ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ всСгда ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹, Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈ ΠΎΠ½ΠΈ получатСлями (Subscriber) ΠΈΠ»ΠΈ поставщиками (Publisher) Π΄Π°Π½Π½Ρ‹Ρ…. Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ с установкой соСдинСния, ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Wireshark.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€
ΠŸΠ°ΠΊΠ΅Ρ‚ с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ MQTT, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎ Π½Π΅ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΠΊΠ°Π½Π°Π»Ρƒ

Π’ TCP Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ ΠΏΠΎ ΠΏΠΎΡ€Ρ‚Ρƒ 1883, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅ доступны всС Π΄Π°Π½Π½Ρ‹Π΅, Π² Ρ‚ΠΎΠΌ числС Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ.

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ

Π’ΠΈΠΏ сообщСния β€” Connect (ΠΊΠΎΠΌΠ°Π½Π΄Π° 0x0001), установка соСдинСния с Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΠΌ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: Connect, Disconnect, Publish, Subscribe, Unsubscribe. Π•ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ подтвСрТдСния получСния, keep alive, ΠΈ Ρ‚.Π΄.

Π€Π»Π°Π³ DUP β€” ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сообщСниС пСрСдаСтся ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΈΠΏΠ°Ρ… сообщСний PUBLISH, SUBSCRIBE, UNSUBSCRIBE, PUBREL, для случаСв, ΠΊΠΎΠ³Π΄Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» подтвСрТдСния получСния ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ сообщСния.
Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ QoS β€” Ρ„Π»Π°Π³ Quality of Service. ΠœΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ эту Ρ‚Π΅ΠΌΡƒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ дальшС.
Retain β€” Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ с Ρ„Π»Π°Π³ΠΎΠΌ retain, ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π½Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€Π΅. ΠŸΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ подпискС Π½Π° этот Ρ‚ΠΎΠΏΠΈΠΊ, Π±Ρ€ΠΎΠΊΠ΅Ρ€ сразу ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ сообщСниС с этим Ρ„Π»Π°Π³ΠΎΠΌ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² сообщСниях с Ρ‚ΠΈΠΏΠΎΠΌ Publish.

ИспользованиС Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ознакомившись с Ρ‚Π΅ΠΎΡ€ΠΈΠ΅ΠΉ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с MQTT Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. Для этого Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Mosquitto, которая ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ‚Π°ΠΊ ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ сСрвСра (Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°). Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Windows, macOS, Linux. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Π° для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ изучСния ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MQTT, ΠΏΡ€ΠΈ этом Ρ‚Π°ΠΊΠΆΠ΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠΉ эксплуатации. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΈ получСния Π΄Π°Π½Π½Ρ‹Ρ… с ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°.

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ² ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ услуги MQTT-Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Microsoft Azure IoT Hub, Amazon AWS IoT, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сСрвис Cloudmqtt.com, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ Π½Π΅Π³ΠΎ самая простая рСгистрация, ΠΈ бСсплатного Ρ‚Π°Ρ€ΠΈΡ„Π° достаточно для обучСния.

ПослС рСгистрации, Π² Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Π΅ доступны Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ ΠΊ сСрвСру Ρ‡Π΅Ρ€Π΅Π· ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ сСти ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°, Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SSL-ΠΏΠΎΡ€Ρ‚, для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ mqtt Π±Ρ€ΠΎΠΊΠ΅Ρ€
Π Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹ доступа ΠΊ MQTT-Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ Π² Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Π΅ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°

Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MQTT позволяСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π·Π°Ρ€Π°Π½Π΅Π΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π½Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€Π΅. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅Ρ‚ нСобходимости ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ‚ΠΎΠΏΠΈΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ смоТСт Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Publisher. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΈΠ· Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠ°Π±ΠΈΠ½Π΅Ρ‚Π°, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ запрос для ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‚ΠΎΠΏΠΈΠΊ habr/test/random ΠΈ чтСния ΠΈΠ· Π½Π΅Π³ΠΎ.

mosquitto_sub β€” ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ subscriber
mosquitto_pub β€” ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ publisher

Для Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌΡΡ ΠΊ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ ΠΊΠ°ΠΊ subscriber, ΠΈ подпишСмся Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ‚ΠΎΠΏΠΈΠΊΠ°
habr/test/random.

Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡˆΠ»ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, ΠΈ ΠΌΡ‹ подписались Π½Π° Ρ‚ΠΎΠΏΠΈΠΊ habr/test/random, ΠΈ сСйчас ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΄Π°Π½Π½ΠΎΠΌ Ρ‚ΠΎΠΏΠΈΠΊΠ΅ ΠΎΡ‚ Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°.

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ SSL-ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ сСртификата Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΡ€Π½Π΅Π²Ρ‹Π΅ сСртификаты ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ. Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ сСрвиса Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сСртификат, Π²Ρ‹Π΄Π°Π½Π½Ρ‹ΠΉ Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠΌ Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ, Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΏΡƒΡ‚ΡŒ ΠΊ систСмному Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ ΠΊΠΎΡ€Π½Π΅Π²Ρ‹Ρ… сСртификатов: —capath /etc/ssl/certs/

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ‚ΠΎΠΏΠΈΠΊ, Π½Π΅ прСрывая ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ приняты сСрвСром ΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ‚ΠΎΠΏΠΈΠΊ. ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с этим, Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΎΠΊΠ½Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° mosquitto_sub, ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊ сообщСниС Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ, ΠΏΡ€ΠΈ этом Π΄Π°ΠΆΠ΅ юникод Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π²ΠΈΠ΄Π½ΠΎ сообщСниС Π½Π° руском языкС.

QoS ΠΈ гарантия доставки

Однако пСрСсылкой сообщСния Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠ°Π»ΠΎ ΠΊΠΎΠ³ΠΎ ΡƒΠ΄ΠΈΠ²ΠΈΡˆΡŒ, вСдь Ρ‚ΠΎ ΠΆΠ΅ самоС ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ банальной ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ nc. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠ΅ соСдинСниС ΠΌΠ΅ΠΆΠ΄Ρƒ подписчиком ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»Π΅ΠΌ. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· GPRS, с ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΈ Π΄Π°ΠΆΠ΅ ΡƒΡΠΏΠ΅ΡˆΠ½Π°Ρ установка TCP-соСдинСния происходит Ρ€Π΅Π΄ΠΊΠΎ, ΠΏΡ€ΠΈ этом Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ подписчик Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» сообщСниС отправитСля. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ приходят ΠΎΠΏΡ†ΠΈΠΈ QoS.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для сообщСний установлСн Ρ„Π»Π°Π³ QoS Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ Β«Fire and forgetΒ»: Publisher ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ сообщСниС Π½Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€Π΅, Π½ΠΎ ΠΏΡ€ΠΈ этом Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сообщСниС Π±Ρ‹Π»ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ доставлСно подписчику. Π­Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π΄Π°Π½Π½Ρ‹Ρ…, потСря ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для рСгулярных ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ влаТности ΠΈΠ»ΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹.

QoS 1: At least once – хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½. Π­Ρ‚ΠΎΡ‚ Ρ„Π»Π°Π³ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ° Publisher Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ подтвСрТдСния доставки подписчику, данная публикация Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ, ΠΈ Π΄Π°Π»Π΅Π΅ подписчику. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, подписчик Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΠΎΠ΅ сообщСниС ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

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

Для симуляции ΠΏΠ»ΠΎΡ…ΠΎΠΉ связи ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠΌ ΠΎΠ±Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСниС с Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ QoS, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΎΠΏΡ†ΠΈΡŽ Retain, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ сообщСниС ΡΠΎΡ…Ρ€Π°Π½ΠΈΠ»ΠΎΡΡŒ Π½Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€Π΅.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, спустя врСмя, наш ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΊΠΎΠ½Π΅Ρ† смог ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ соСдинСниС с ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ΠΎΠΌ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ ΠΊ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ:

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

ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» 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 Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *