Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 8488|Odpoveď: 0

Niekoľko poznatkov EMQTT

[Kopírovať odkaz]
Zverejnené 15. 2. 2019 10:25:09 | | |
Predtým, než začnem písať text, musím poďakovať internetovému používateľovi "Xiaolong" a používateľom v emqtt.io skupine za pomoc, práve som začal používať MQTT. Je veľa vecí, ktorým nerozumiem, keď som sa pýtal na riešenie v emqtt.io skupine, "Xiaolong" mi podrobne vysvetlil niektoré vedomostné body MQTT a poskytol riešenia, veľmi pekne ďakujem. Myslím, že niektoré veci spomenuté v ňom sú stále veľmi užitočné pre začiatočníkov, takže tu je zhrnutie mojej histórie chatov s "Xiaolong" pre vašu informáciu.

Otázka 1: Ak má MCU obmedzenú cache a obmedzený výpočtový výkon, nie je možné posielať správy naraz, ako v tomto prípade publikovať správy cez MQTT?
Najprv zostavte hlavičku publikovacieho protokolu, zapíšte do nej dĺžku užitočného obsahu, odošlite ho cez TCP a potom pošlite obsah postupne. Ak nemôžete získať celkovú dĺžku nákladu, je to ťažké. Keďže posielate správu o publikovaní protokolu, po tom, čo server načíta dĺžku payloadu v hlave, bude pokračovať v čítaní, kým nedosiahne požadovanú dĺžku, a potom sa publikovanie započíta. Preto je potrebné najprv potvrdiť dĺžku publikovaného obsahu, potom zoskupiť hlavičku paketu publikovať, doplniť dĺžku payloadu, tcp:send(head), a potom poslať payload postupne, napríklad 1k naraz, alebo poslať dáta podľa bežného tcp a poslať ich až do konca, aj keď je publikovanie ukončené. Ďalší send patrí TCP vrstve a nemusíte zasahovať. Ak v TCP vrstve send zlyhá, musí byť problém so socketom, spojenie je prerušené, musíte sa znovu pripojiť k MQTT serveru, ak nie je dokončený, serverová relácia tiež skončí, teda server nedostal dáta. Znovu sa pripojiť, musíš správu poslať znova, pokiaľ je odpojená, musíš sa znovu pripojiť, či chceš dáta poslať znova, závisí od toho, či si uložil predchádzajúce dáta. Tiež, ak je správa dôležitá, môžete použiť qos=1 alebo 2, aby ste zabezpečili, že server správu prijme, qos=1 vyžaduje jednu spiatočnú cestu, qos=2 štyri spiatočné cesty, qos=0 je veľmi jednoduché, pokiaľ ju pošlete von, nezáleží na tom.

Otázka 2: Existuje veľa open source zdrojov pre MQTT?

Prihlásenie na hypertextový odkaz je viditeľné.Je ich veľa

Otázka 3: Prečo MQTT vo všeobecnosti neposkytuje perzistenčné funkcie?

Protokol MQTT je navrhnutý podľa online návrhu zariadenia a údaje sú uložené v pamäti

Otázka 4: Zaberá MQTT pamäť?

MQTT spotrebuje viac pamäte a namerané údaje emqtt sú: 38W, pamäť tvorí 14G, CPU 15%

Otázka 5: Aký je vzťah medzi sedením a klientom?

Napríklad, ak máte dosku, ako klient iniciuje požiadavku na pripojenie MQTT na pripojenie k MQTT serveru, je to EMQTT služba, po prijatí požiadavky na pripojenie EMQTT serverom na TCP vrstve nadviaže TCP spojenie s doskou na TCP vrstve a v rámci EMQTT sa vygeneruje proces na komunikáciu s touto doskou a tiež sa generuje proces nazývaný session. Toto sedenie je téma špecializujúca sa na správu predplatného tejto dosky, a ostatné fóra ju tiež pošlú na reláciu zodpovedajúcu tejto doske, ak zverejnia tému, ktorá ju zaujíma, ak táto relácia prijme predplatenú tému a zistí, že klient je stále nažive, odošle dáta cez tohto klienta cez TCP na túto dosku, ak sa zistí, že klient už nie je prítomný, teda doska a server sú poškodené. Potom relácia najskôr uloží prijatú tému predplatného do relácie, a pri ďalšom pripojení dosky, cleansession=false, potom relácia nebude vyčistená a pri pripojení sa správa o predplatnom odošle správe, čo pravdepodobne znamená.

Otázka 6: Ako emqtt vie, že pripojený klient je ten istý?

Pri pripájaní je potrebné nastaviť ID klienta, toto ID môže zostať nenastavené, ak nie je nastavené, na strane emqtt servera sa automaticky vygeneruje unikátne ID, ak chcete použiť reláciu, musíte mať unikátne ID, môžete použiť IMEI. Ak musíte prijímať offline správy, musíte použiť presné ID.

Otázka 7: Dá sa čas relácie emqtt upraviť?

Môžete zmeniť čas sedenia, teraz je to 48 hodín, môžete ho zmeniť na týždeň, ak chcete, aby to bolo trvalé, obávam sa, že to nie je vhodné.

Otázka 8: Je prístupové oprávnenie emqtt zapísané v konfiguračnom súbore?

etc/acl.config

Otázka 9: Aké je rozdelenie emqtt?

Distribuované jednoducho znamená prepojenie viacerých vašich serverov dokopy, jedného alebo viacerých z nich, pokiaľ nie sú všetky pokazené, emqtt môže bežať normálne. EMQTT dáta zdieľa viacero uzlov, a ak dôjde k problému s jedným uzlom, dáta sa nestratia, ale stratia sa dáta relácie na uzle.









Predchádzajúci:Prvé zoznámenie sa s frontou správ EMQX (EMQTTD)
Budúci:poznámky k štúdii jQuery
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com