Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ 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 Π±ΡΠΎΠΊΠ΅Ρ.
ΠΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Mosquitto β Π΅ΡΠ»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠΎ Ρ Π²Π°Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ 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 Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠΎΠ»ΠΎΠ΄ (ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΡΠΎΠ»ΡΠΊΠΎ Π² 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.
Π‘ΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π³ΡΠ°ΡΠΈΠΊ Google Trends
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ
MQTT ΠΈΠΌΠ΅Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ. ΠΠ±ΠΌΠ΅Π½ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Π±ΡΠΎΠΊΠ΅ΡΠΎΠΌ. Π ΠΎΠ±ΡΡΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΎΠ±ΡΠ°ΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ, ΠΈ Π²Π΅ΡΡ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ΅Π· Π±ΡΠΎΠΊΠ΅ΡΠ°.
ΠΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π²ΡΡΡΡΠΏΠ°ΡΡ Π² ΡΠΎΠ»ΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ (Publisher) ΠΈ Π² ΡΠΎΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ Π΄Π°Π½Π½ΡΡ (Subscriber). Π ΡΡΡΡΠΊΠΎΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π΅ ΡΡΠΈ ΡΠ΅ΡΠΌΠΈΠ½Ρ ΡΠ°ΡΡΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡ ΠΊΠ°ΠΊ ΠΈΠ·Π΄Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊ, Π½ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΡΡΠ°Π½ΠΈΡΡ, ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΡ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ.
Π ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ MQTT ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ, ΡΠ΅ΡΠ΅Π· ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ·Π΅Π»
ΠΠ° ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ²Π΅ΡΡ TCP/IP ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΡΠ²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π½Π°ΠΏΡΡΠΌΡΡ ΠΏΠΎ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΡ, Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ VPN-ΡΠΎΠ½Π½Π΅Π»Π΅ΠΉ. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π±ΡΠΎΠΊΠ΅Ρ ΠΈΠΌΠ΅Π» ΡΠ΅Π°Π»ΡΠ½ΡΠΉ IP-Π°Π΄ΡΠ΅Ρ ΠΈ Π²ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠΎΠ³Π»ΠΈ ΠΊ Π½Π΅ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ, ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π·Π° NAT. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ MQTT ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΠΏΡΠΎΠ±ΡΠ°ΡΡΠ²Π°ΡΡ ΠΏΠΎΡΡΡ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π² Modbus/TCP ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅Ρ (master), ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΡΡΠΌΠΎΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ.
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΠΎΡΡ MQTT-Π±ΡΠΎΠΊΠ΅ΡΠ° Π΄Π»Ρ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ β 1883. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ SSL-ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΡΡ 8883.
Broker
ΠΡΠΎΠΊΠ΅Ρ β ΡΡΠΎ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ·Π΅Π» MQTT, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠΈΠΉ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ². ΠΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· Π±ΡΠΎΠΊΠ΅ΡΠ°. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±ΡΠΎΠΊΠ΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΡΡΠΏΠ°ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ΅ ΠΠ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ. Π Π΅Π³ΠΎ Π·Π°Π΄Π°ΡΠΈ Π²Ρ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ, ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠΎΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
Publisher/Subscriber
ΠΠ»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Publisher ΠΈ Subscriber ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ: Π΄Π°ΡΡΠΈΠΊ Π²Π»Π°ΠΆΠ½ΠΎΡΡΠΈ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Ρ Π²Π»Π°ΠΆΠ½ΠΎΡΡΡ Π² ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ, ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΠΎΠΏΡΡΡΠΈΠ»Π°ΡΡ Π½ΠΈΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠ²Π»Π°ΠΆΠ½ΠΈΡΠ΅Π»Ρ Π²ΠΎΠ·Π΄ΡΡ Π°.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π°ΡΡΠΈΠΊ Π²Π»Π°ΠΆΠ½ΠΎΡΡΠΈ Π²ΡΡΡΡΠΏΠ°Π΅Ρ Π² ΡΠΎΠ»ΠΈ Publisher: Π΅Π³ΠΎ Π·Π°Π΄Π°ΡΠ° ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ Π² ΡΡΠΎΡΠΎΠ½Ρ Π±ΡΠΎΠΊΠ΅ΡΠ°. Π£Π²Π»Π°ΠΆΠ½ΠΈΡΠ΅Π»Ρ Π²ΠΎΠ·Π΄ΡΡ Π° Π²ΡΡΡΡΠΏΠ°Π΅Ρ Π² ΡΠΎΠ»ΠΈ Subscriber: ΠΎΠ½ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎ Π²Π»Π°ΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΎΡ Π±ΡΠΎΠΊΠ΅ΡΠ° Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ²Π»Π°ΠΆΠ½ΠΈΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΌ ΡΠ΅ΡΠ°ΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ²Π»Π°ΠΆΠ½Π΅Π½ΠΈΠ΅.
Π ΡΡΠΎΠΉ ΡΡ Π΅ΠΌΠ΅ 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, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΉ ΠΏΠΎ Π½Π΅ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ
Π TCP Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ ΠΏΠΎ ΠΏΠΎΡΡΡ 1883, ΡΠΎ Π΅ΡΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, Π° Π·Π½Π°ΡΠΈΡ Π² ΠΎΡΠΊΡΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ.
ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
Π’ΠΈΠΏ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ β Connect (ΠΊΠΎΠΌΠ°Π½Π΄Π° 0x0001), ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π±ΡΠΎΠΊΠ΅ΡΠΎΠΌ. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: Connect, Disconnect, Publish, Subscribe, Unsubscribe. ΠΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ, keep alive, ΠΈ Ρ.Π΄.
Π€Π»Π°Π³ DUP β ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΈΠΏΠ°Ρ
ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ PUBLISH, SUBSCRIBE, UNSUBSCRIBE, PUBREL, Π΄Π»Ρ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° Π±ΡΠΎΠΊΠ΅Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
Π£ΡΠΎΠ²Π΅Π½Ρ QoS β ΡΠ»Π°Π³ Quality of Service. ΠΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΡΡ ΡΠ΅ΠΌΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π΄Π°Π»ΡΡΠ΅.
Retain β Π΄Π°Π½Π½ΡΠ΅, ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΠ΅ Ρ ΡΠ»Π°Π³ΠΎΠΌ retain, ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡΡ Π½Π° Π±ΡΠΎΠΊΠ΅ΡΠ΅. ΠΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ΅ Π½Π° ΡΡΠΎΡ ΡΠΎΠΏΠΈΠΊ, Π±ΡΠΎΠΊΠ΅Ρ ΡΡΠ°Π·Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΡΡΠΈΠΌ ΡΠ»Π°Π³ΠΎΠΌ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΡ
Ρ ΡΠΈΠΏΠΎΠΌ Publish.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅
Π’Π΅ΠΏΠ΅ΡΡ, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ²ΡΠΈΡΡ Ρ ΡΠ΅ΠΎΡΠΈΠ΅ΠΉ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ MQTT Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠΊΡΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Mosquitto, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠ°ΠΊ ΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° (Π±ΡΠΎΠΊΠ΅ΡΠ°). Π Π°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Windows, macOS, Linux. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½Π° Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° MQTT, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ°ΠΊΠΆΠ΅ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΠΉ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ. ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π΅ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Π»Π°ΡΠ½ΠΎΠ³ΠΎ Π±ΡΠΎΠΊΠ΅ΡΠ°.
ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ² ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΡΠ»ΡΠ³ΠΈ MQTT-Π±ΡΠΎΠΊΠ΅ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Microsoft Azure IoT Hub, Amazon AWS IoT, ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡ Cloudmqtt.com, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ Π½Π΅Π³ΠΎ ΡΠ°ΠΌΠ°Ρ ΠΏΡΠΎΡΡΠ°Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ, ΠΈ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΠΈΡΠ° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ, Π² Π»ΠΈΡΠ½ΠΎΠΌ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ΅ΠΊΠ²ΠΈΠ·ΠΈΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ Π±ΡΠΎΠΊΠ΅ΡΡ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠΈ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, ΡΠ°Π·ΡΠΌΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ SSL-ΠΏΠΎΡΡ, Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°ΡΠΈΠΊΠ°.
Π Π΅ΠΊΠ²ΠΈΠ·ΠΈΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ 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 ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ± ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΊΠ°Π½Π°Π»ΠΎΠ² ΡΠ²ΡΠ·ΠΈ β ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° Π²Π΅ΡΠ²Ρ Ρ Π»ΠΈΡΡΡΡΠΌΠΈ. ΠΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Ρ ΠΈΠ·Π΄Π°ΡΠ΅Π»Ρ Π΅ΡΡΡ Π½ΠΎΠ²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΠ΅Π΄ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ. ΠΠ»ΠΈΠ΅Π½ΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ»ΠΈ Π΄Π²ΡΠΌ Π±Π°Π·ΠΎΠ²ΡΠΌ ΠΊΠ°Π½Π°Π»Π°ΠΌ, Β«ΠΎΡΠ²Π΅ΡΠ²Π»ΡΡΡΠΈΠΌΡΡΒ» Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ. ΠΡΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΠΎΠ±ΠΌΠ΅Π½ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΎΡ Π΄Π²ΡΡ Π±Π°ΠΉΡ Π΄ΠΎ 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 ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.