పోర్ట్ ఫార్వార్డింగ్ లేకుండా ESP8266 నియంత్రణ: MQTT బయటకు వెళ్లే మార్గం
ఇంటర్నెట్ నుండి చేరుకోగల బ్రోకర్ ఇంటి పరికరాన్ని అది తనే తెరిచిన కనెక్షన్ ద్వారా నియంత్రించడానికి అనుమతిస్తుంది. ఇది TLS మెమరీ, అంశాలు మరియు పునరావృత్తికి ఏమి మారుస్తుంది.
పరికరం ఇంటి రౌటర్ వెనుక ఉంది, పోర్ట్ ఫార్వార్డింగ్ లేదు మరియు పబ్లిక్ చిరునామా కూడా లేదు, అయినా అది కొన్ని సెకన్లలో కాన్ఫిగరేషన్ పొందాలి. ఉపాయం ఫైర్వాల్లో రంధ్రం కాదు. పరికరం తాను చేరుకోగల బ్రోకర్ వైపు బయటకు తెరిచే కనెక్షన్ అది, ఆ బ్రోకర్ తర్వాత అదే స్థాపిత మార్గంలో సందేశాలను తిరిగి పంపుతుంది. ఈ డిజైన్లో ప్రజలకు నచ్చే ప్రతి లక్షణం, అందులోని ప్రతి ఉచ్చు ఈ తలకిందుల మార్పు నుండే వస్తాయి.
NAT గుండా నిజంగా ఏమి వెళుతుంది
పరికరం బ్రోకర్కు TCP కనెక్షన్ తెరిచినప్పుడు, ఇంటి రౌటర్ మ్యాపింగ్ను సృష్టించి ప్రవాహం ఉన్నంత కాలం దాన్ని సజీవంగా ఉంచుతుంది. ఆ ప్రవాహంపై ప్రతిస్పందనలు పరికరానికి తిరిగి వస్తాయి, ఎందుకంటే మ్యాపింగ్ ఇప్పటికే ఉంది. బ్రోకర్ ఎప్పుడూ ఇంటి వైపు ఏమీ ప్రారంభించదు, కాబట్టి రౌటర్ తిరస్కరించాల్సిన అభ్యర్థించని ఇన్బౌండ్ ప్యాకెట్ లేదు. ఇదే మొత్తం నెట్వర్కింగ్ వాదన, అందుకే మీరు నియంత్రించని నెట్వర్క్లలో ఈ విధానం పనిచేస్తుంది.
పరికరం కనెక్షన్ను సజీవంగా ఉంచాలి లేదా మళ్లీ స్థాపించాలి, నిర్మాణం స్థిరపడిన తర్వాత ఇదే విశ్వసనీయత ప్రశ్న అవుతుంది.
బ్రోకర్ అంశాలను రూట్ చేస్తుంది, HTTPని ప్రాక్సీ చేయదు
MQTT ప్రచురణ మరియు సభ్యత్వ మార్పిడులను నిర్వచిస్తుంది: పరికరం చదవడానికి అనుమతి ఉన్న అంశ ఫిల్టర్కు సభ్యత్వం తీసుకుంటుంది, అధికారం ఉన్న నియంత్రకం సరిపోయే అంశంపై ప్రచురిస్తుంది. బ్రోకర్ ప్రచురణలను సభ్యత్వాలతో సరిపోల్చి నకళ్లను పంపిస్తుంది. బ్రౌజర్ అభ్యర్థన ఏమిటో దానికి తెలియదు, పరికరం వెబ్ సర్వర్కు HTTP GET పంపదు. ఉన్న ఫర్మ్వేర్ HTTP మాత్రమే మాట్లాడితే, బ్రోకర్ డిజైన్కు అప్లికేషన్ మార్పు లేదా ఉద్దేశపూర్వక అనువాద భాగం అవసరం.
అంశాల పేర్లు కూడా అధికారం కాదు. చాలా బ్రోకర్లు ప్రతి క్లయింట్కు యాక్సెస్ నియంత్రణ జాబితాలను మద్దతు ఇస్తాయి, పరికరాలు ఒకే ప్రపంచ నామస్థలాన్ని పంచుకోవడం బదులు తమ సొంత ప్రచురణ మరియు సభ్యత్వ చెట్లకు పరిమితం చేయాలి.
పరికర వనరులు TLS ఆకారాన్ని నిర్ణయిస్తాయి
ESP8266 పరిమిత RAM కలిగి ఉంది, TLS హ్యాండ్షేక్ అది చేసే అత్యంత ఖరీదైన పని. Arduino కోర్ BearSSLను సరిగ్గా ఈ పరిమితి కోసం అందిస్తుంది, CAను ధృవీకరించడం మరియు ఫింగర్ప్రింట్ను పిన్ చేయడం మధ్య ఎంపిక మెమరీ ముద్ర మరియు మరొక పేరుకు చెల్లుబాటు అయ్యే ధృవపత్రం ఉన్న దాడి చేసేవాడు ఏమి చేయగలడు అనే రెండింటినీ మారుస్తుంది. హీప్ అనుమతించినప్పుడు బ్రోకర్ CAను ధృవీకరించడం బలమైన ఎంపిక. పేలోడ్ పరిమాణం కూడా ముఖ్యం: MQTT క్లయింట్ బఫర్ను ఉంచుతుంది, దానికంటే పెద్ద సందేశాలు బఫర్ ఉద్దేశపూర్వకంగా పెంచకపోతే నిశ్శబ్దంగా కత్తిరించబడతాయి.
కీప్అలైవ్ మరియు సాకెట్ సమయ పరిమితులు ఒకే బడ్జెట్లో భాగం, ఎందుకంటే చనిపోయిన కనెక్షన్ను ఎప్పుడూ గమనించని క్లయింట్ లోపాన్ని నివేదించకుండా ఆదేశాలను స్వీకరించడం ఆపేస్తుంది.
కాటు వేసే సందేశ అర్థశాస్త్రం
నిలిపి ఉంచిన సందేశాన్ని బ్రోకర్ నిల్వ చేసి తర్వాత సరిపోయే సభ్యులకు పంపిస్తుంది, ఇది ప్రస్తుత స్థితికి అద్భుతం మరియు ఒకసారి ఆదేశాలకు ప్రమాదకరం: మళ్లీ కనెక్ట్ అయ్యే పరికరం నిన్నటి ఆదేశాన్ని కొత్తదిగా పొందవచ్చు. QoS 1 కనీసం ఒకసారి పంపడాన్ని హామీ ఇస్తుంది, కాబట్టి నకళ్లు సాధారణం మరియు అప్లికేషన్ పునరావృత్తికి సురక్షితంగా ఉండాలి, ఆదర్శంగా అది తిరస్కరించగల గుర్తింపు లేదా సమయ ముద్రతో. చివరి కోరిక పరికరం పడిపోయినప్పుడు స్థితి సంకేతాన్ని ఇస్తుంది, కానీ కనెక్షన్ వేలాడకుండా నిజంగా విఫలమైతే మాత్రమే.
పరిశుభ్ర సెషన్ ప్రవర్తన మీరు బయట ఉన్నప్పుడు బ్రోకర్ మీ సభ్యత్వాలను ఉంచుతుందో లేదో నిర్ణయిస్తుంది, అందులో తప్పు చేయడమే కొన్ని పరికరాలు ప్రతి మళ్లీ కనెక్షన్ తర్వాత మొదటి సందేశాన్ని కోల్పోవడానికి కారణం.
TLS బ్రోకర్ వరకు ఉన్న భాగాన్ని రక్షిస్తుంది. ఇది బ్రోకర్ ఆపరేటర్కు వ్యతిరేకంగా పేలోడ్ యొక్క ఎండ్-టు-ఎండ్ ఎన్క్రిప్షన్ కాదు, అతను మీరు దాని ద్వారా ప్రచురించే ప్రతిదీ చదవగలడు.
జీవిత చక్రాన్ని పరిమితం చేసి హానికరం కాని డేటాతో పరీక్షించండి
కఠినమైన పునఃప్రయత్న లూప్ బదులు బ్యాక్ఆఫ్తో మళ్లీ కనెక్షన్ను ప్రణాళిక చేయండి, సెషన్ శాశ్వతం కాకపోతే స్పష్టంగా మళ్లీ సభ్యత్వం తీసుకోండి, మరియు కనెక్షన్ ఫలితాన్ని లాగ్ చేయండి, నిశ్శబ్ద ఆఫ్లైన్ పరికరం సాక్ష్యం విడిచిపెట్టేలా. మళ్లీ కనెక్షన్ మార్గాన్ని ఏమీ చేయని నమూనా పేలోడ్లతో పరీక్షించండి, ఎందుకంటే ఆదేశ ఛానెల్ మొదటి ఉత్పత్తి పరీక్ష నిజమైన ఆదేశం కాకూడదు. తర్వాత పాత నిలిపి ఉంచిన సందేశం మళ్లీ కనెక్షన్లో ఏమి చేస్తుందో నిర్ధారించి, ఆ ప్రవర్తన ప్రతి అంశానికి ఆమోదయోగ్యమా అని నిర్ణయించండి.
ఈ విధంగా చేస్తే, డిజైన్ ఒక ఇన్బౌండ్ నెట్వర్క్ అవసరాన్ని తొలగించి పరికర సాఫ్ట్వేర్, బ్రోకర్ విధానం మరియు సందేశ అర్థశాస్త్రాన్ని దాచిన ఊహలకు బదులు కనిపించే పనిగా విడిచిపెడుతుంది.