Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 8488|Odgovoriti: 0

Več točk znanja o EMQTT

[Kopiraj povezavo]
Objavljeno na 15. 02. 2019 10:25:09 | | |
Preden začnem z besedilom, se moram zahvaliti uporabniku interneta "Xiaolong" in uporabnikom v emqtt.io skupini za pomoč, pravkar sem začel uporabljati MQTT. Veliko stvari mi ni jasno, ko sem vprašal o rešitvah v emqtt.io skupini, mi je "Xiaolong" podrobno razložil nekaj točk znanja o MQTT in ponudil rešitve, najlepša hvala. Mislim, da so nekatere omenjene stvari še vedno zelo uporabne za začetnike, zato je tukaj povzetek moje zgodovine klepeta z "Xiaolong" za vašo referenco.

Vprašanje 1: Če ima MCU omejen predpomnilnik in omejeno procesorsko moč, ni mogoče pošiljati sporočil hkrati, kako v tem primeru objaviti sporočila prek MQTT?
Najprej sestavite glavo protokola za objavo, vanjo zapišite dolžino uporabne vsebine, jo pošljite skozi TCP in nato vsebino pošljite postopoma. Če ne moreš dobiti celotne dolžine uporabnega tovora, je to težko. Ker pošljete poročilo o objavi protokola, strežnik po branju dolžine vsebine v glavi nadaljuje z branjem, dokler ne doseže zahtevane dolžine, nato pa se objava šteje. Zato morate najprej potrditi dolžino vsebine, ki jo objavite, nato združiti glavo paketa za objavo, vnesti dolžino vsebine, tcp:send(head), in nato poslati vsebino eno za drugo, na primer po 1k naenkrat, ali poslati podatke po običajnem tcp in jih poslati do konca, tudi če je objava končana. Naslednje pošiljanje pripada TCP plasti in ni treba posegati. Če v TCP plasti pošiljanje ne uspe, mora biti težava z vtičnico, povezava je prekinjena, morate se ponovno povezati z MQTT strežnikom, če ni končan, se strežniška seja prav tako konča, torej strežnik ni prejel podatkov. Ponovno se povežeš, moraš ponovno poslati sporočilo, dokler je odklopljeno, se moraš ponovno povezati, ali želiš ponovno poslati podatke, je odvisno od tega, ali si shranil prejšnje podatke. Prav tako, če je sporočilo pomembno, lahko uporabite qos=1 ali 2, da zagotovite, da strežnik prejme sporočilo, qos=1 zahteva eno povratno pot, qos=2 štiri povratne poti, qos=0 je zelo preprosto, dokler ga pošljete, ni pomembno.

Vprašanje 2: Ali obstaja veliko odprtokodnih virov za MQTT?

Prijava do hiperpovezave je vidna.Veliko jih je

Vprašanje 3: Zakaj MQTT na splošno ne zagotavlja funkcij za obstojnost?

Protokol MQTT je zasnovan po spletni zasnovi naprave, podatki pa so shranjeni v pomnilniku

Vprašanje 4: Ali MQTT porablja pomnilnik?

MQTT porabi več pomnilnika, izmerjeni podatki emqtt pa so: 38W, pomnilnik 14G, CPU 15%

Vprašanje 5: Kakšen je odnos med seanso in klientom?

Na primer, če imate ploščo, kot odjemalec sproži zahtevo po povezavi z MQTT in se poveže z MQTT strežnikom, na primer, gre za EMQTT storitev; po tem, ko EMQTT strežnik prejme zahtevo po povezavi te plošče, vzpostavi TCP povezavo s ploščo na TCP plasti, znotraj EMQTT pa se sproži proces za komunikacijo s to ploščo, prav tako pa se sproži proces, imenovan seja. Ta sessoin je tema, specializirana za upravljanje naročnine na to ploščo, drugi forumi pa jo bodo prav tako poslali na sejo, ki ustreza tej plošči, če objavijo temo, ki jo zanima, če ta seja prejme naročeno temo in ugotovi, da je odjemalec še živ, bodo podatke poslali preko tega odjemalca prek TCP na to ploščo, če ugotovijo, da odjemalca ni več, torej sta plošča in strežnik pokvarjena. Nato seja najprej shrani prejeto temo naročnine v seji, naslednjič pa, ko je tabla povezana, in cleansession=false, seja ne bo izbrisana, in ob povezavi tokrat bo tabli poslano prej prejeto sporočilo o naročnini, kar verjetno pomeni.

Vprašanje 6: Kako emqtt ve, da je povezan odjemalec isti?

Pri povezovanju morate nastaviti ID odjemalca, ta ID lahko ostane nenastavljen, če ni nastavljen, bo na strani emqtt strežnika samodejno ustvarjen edinstven ID, če želite uporabiti sejo, morate imeti edinstven ID, lahko uporabite IMEI. Če morate prejemati sporočila brez povezave, morate uporabiti določen ID.

Vprašanje 7: Ali je mogoče spremeniti čas seje emqtt?

Lahko spremeniš čas seje, zdaj je 48 ur, lahko ga spremeniš na teden, če želiš, da je trajno, žal EMTT ni primeren.

Vprašanje 8: Ali je dovoljenje za dostop do emqtt zapisano v konfiguracijski datoteki?

etc/acl.config

Vprašanje 9: Kakšna je porazdelitev emqtt?

Distribuirano preprosto pomeni, da povežeš več strežnikov skupaj, enega ali več, dokler niso vsi pokvarjeni, lahko emqtt deluje normalno. EMQTT podatki se delijo med več vozlišči, in če pride do težave z enim vozliščem, podatki ne bodo izgubljeni, vendar se izgubijo podatki seje na vozlišču.









Prejšnji:Prvo srečanje z vrstnim redom sporočil EMQX (EMQTTD)
Naslednji:jQuery študijske opombe
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com