Түзмөк үй роутеринин артында, портту кайра багыттоо да, коомдук дарек да жок, бирок ал конфигурацияны бир нече секунддун ичинде алышы керек. Айла firewallдагы тешик эмес. Бул түзмөктүн сыртка, өзү жете алган broker тарапка ачкан байланышы, ал эми broker билдирүүлөрдү ошол эле орнотулган жол менен кайра жөнөтөт. Бул дизайнда адамдарга жаккан ар бир касиет жана андагы ар бир тузак ушул тескери айлануудан келет.

NAT аркылуу чындыгында эмне өтөт

Түзмөк broker менен TCP байланышын ачканда, үй роутери салыштыруу түзүп, аны агымдын өмүрү бою тирүү кармайт. Ошол агымдагы жооптор түзмөккө кайтат, анткени салыштыруу мурунтан бар. Broker үй тарапка эч качан эч нерсе баштабайт, ошондуктан роутер четке кага турган суралбаган кирүү пакети жок. Бул — бүткүл тармактык далил, ошондуктан бул ыкма сиз көзөмөлдөбөгөн тармактарда иштейт.

Түзмөк байланышты тирүү кармоого же кайра орнотууга тийиш, ал эми архитектура бекигенден кийин бул ишенимдүүлүк маселесине айланат.

Broker темаларды маршруттайт, HTTP прокси эмес

MQTT жарыялоо жана жазылуу алмашууларын аныктайт: түзмөк өзүнө окууга уруксат берилген тема чыпкасына жазылат, ал эми ыйгарым укуктуу контроллер тиешелүү темага жарыялайт. Broker жарыялоолорду жазылуулар менен дал келтирип, көчүрмөлөрдү жеткирет. Ал браузер сурамынын эмне экенин билбейт жана HTTP GETти түзмөктүн веб-серверине жөнөтпөйт. Эгер учурдагы firmware HTTP гана сүйлөсө, broker дизайны колдонмону өзгөртүүнү же атайын жасалган котормо компонентин талап кылат.

Тема аттары да авторизация эмес. Көпчүлүк broker'лер ар бир клиент үчүн кирүүнү көзөмөлдөө тизмелерин колдойт, ал эми түзмөктөрдү бир глобалдык ат мейкиндигин бөлүшүүнүн ордуна өздөрүнүн жарыялоо жана жазылуу бактары менен чектөө керек.

Түзмөктүн ресурстары TLSтин формасын аныктайт

ESP8266нын RAMы чектелген, ал эми TLS кол алышуусу — анын эң кымбат иши. Arduino өзөгү BearSSLди дал ушул чектөө үчүн жеткирет, ал эми CAны текшерүү менен манжа изин бекитүүнүн ортосундагы тандоо эстутум изин да, башка атка жарактуу сертификаты бар кол салуучунун эмне кыла аларын да өзгөртөт. Үймөк уруксат бергенде brokerдин CAсын текшерүү күчтүүрөөк вариант. Пайдалуу жүктүн өлчөмү да маанилүү: MQTT клиенти буфер кармайт, андан чоң билдирүүлөр буфер атайын чоңойтулбаса, үнсүз кесилет.

Keepalive жана socket таймауттары ошол эле бюджеттин бөлүгү, анткени өлүк байланышты эч качан байкабаган клиент ката жөнүндө билдирбестен буйруктарды кабыл алууну токтотот.

Тиштеген билдирүү семантикасы

Сакталган билдирүүнү broker сактайт жана кийинки дал келүүчү жазылуучуларга жеткирет, бул учурдагы абал үчүн мыкты, ал эми бир жолку буйруктар үчүн коркунучтуу: кайра туташкан түзмөк кечээки буйрукту жаңыдай кабыл алышы мүмкүн. QoS 1 жок дегенде бир жолу жеткирүүгө кепилдик берет, ошондуктан көчүрмөлөр кадимки жана колдонмо кайталоого туруктуу болушу керек, идеалдуу түрдө ал четке кага алган идентификатор же убакыт белгиси менен. Акыркы осуят түзмөк кулаганда статус сигналын берет, бирок байланыш илинип калбастан чындап ийгиликсиз болгондо гана.

Таза сессиянын жүрүм-туруму broker сиз жокто жазылууларыңызды сактайбы, ошону чечет, жана ушунда ката кетирүү — айрым түзмөктөрдүн ар бир кайра туташуудан кийин биринчи билдирүүнү өткөрүп жиберишинин себеби.

TLS brokerге чейинки бөлүктү коргойт. Бул broker операторуна каршы пайдалуу жүктүн учтан-учка шифрлениши эмес, ал сиздин ал аркылуу жарыялаганыңыздын баарын окуй алат.

Жашоо циклин чектеп, аны зыянсыз маалыматтар менен сынаңыз

Кайра туташууну тыгыз кайталоо циклинин ордуна артка чегинүү менен пландаштырыңыз, сессия туруктуу болбосо ачык түрдө кайра жазылыңыз жана туташуунун жыйынтыгын жазып туруңуз, ошондо үнсүз оффлайн түзмөк далил калтырат. Кайра туташуу жолун эч нерсе кылбаган үлгү жүктөр менен сынаңыз, анткени буйрук каналынын биринчи өндүрүштүк сынагы чыныгы буйрук болбошу керек. Анан эскирген сакталган билдирүүнүн кайра туташууда эмне кылаарын ырастап, бул жүрүм-турум ар бир тема үчүн жарамдуубу, ошону чечиңиз.

Ошентип жасалса, дизайн бир кирүү тармактык талабын алып салат жана түзмөк программасын, broker саясатын жана билдирүү семантикасын жашыруун божомолдор эмес, көрүнүктүү иш катары калтырат.

Тектеш макалалар