ഉപകരണം വീട്ടിലെ റൂട്ടറിന് പിന്നിൽ ആണ്, പോർട്ട് ഫോർവേഡിംഗ് ഇല്ല, പൊതു വിലാസവുമില്ല, എന്നിട്ടും അത് സെക്കൻഡുകൾക്കുള്ളിൽ കോൺഫിഗറേഷൻ സ്വീകരിക്കണം. തന്ത്രം ഫയർവാളിലെ ഒരു ദ്വാരമല്ല. ഉപകരണം പുറത്തേക്ക് എത്തിച്ചേരാവുന്ന ഒരു ബ്രോക്കറിലേക്ക് തുറക്കുന്ന കണക്ഷനാണത്, ആ ബ്രോക്കർ അതേ സ്ഥാപിത വഴിയിലൂടെ സന്ദേശങ്ങൾ തിരികെ അയക്കുന്നു. ഈ രൂപകൽപ്പനയിൽ ആളുകൾക്ക് ഇഷ്ടപ്പെടുന്ന ഓരോ ഗുണവും അതിലെ ഓരോ കെണിയും ഈ കീഴ്മേൽ മറിയലിൽ നിന്നാണ് വരുന്നത്.

NAT-ലൂടെ യഥാർത്ഥത്തിൽ എന്ത് കടക്കുന്നു

ഉപകരണം ബ്രോക്കറിലേക്ക് TCP കണക്ഷൻ തുറക്കുമ്പോൾ, വീട്ടിലെ റൂട്ടർ ഒരു മാപ്പിംഗ് സൃഷ്ടിച്ച് ഫ്ലോയുടെ ആയുസ്സ് മുഴുവൻ അത് ജീവനോടെ നിലനിർത്തുന്നു. ആ ഫ്ലോയിലെ മറുപടികൾ ഉപകരണത്തിലേക്ക് തിരികെ വരുന്നു, കാരണം മാപ്പിംഗ് ഇതിനകം നിലവിലുണ്ട്. ബ്രോക്കർ ഒരിക്കലും വീട്ടിലേക്ക് ഒന്നും ആരംഭിക്കുന്നില്ല, അതിനാൽ റൂട്ടർ നിരസിക്കേണ്ട ആവശ്യപ്പെടാത്ത ഇൻബൗണ്ട് പാക്കറ്റ് ഇല്ല. ഇതാണ് മുഴുവൻ നെറ്റ്വർക്കിംഗ് വാദം, അതുകൊണ്ടാണ് നിങ്ങൾ നിയന്ത്രിക്കാത്ത നെറ്റ്വർക്കുകളിൽ ഈ സമീപനം പ്രവർത്തിക്കുന്നത്.

ഉപകരണം കണക്ഷൻ ജീവനോടെ നിലനിർത്തണം അല്ലെങ്കിൽ വീണ്ടും സ്ഥാപിക്കണം, ആർക്കിടെക്ചർ ഉറച്ചാൽ അത് വിശ്വാസ്യതയുടെ ചോദ്യമായി മാറുന്നു.

ബ്രോക്കർ വിഷയങ്ങൾ റൂട്ട് ചെയ്യുന്നു, HTTP പ്രോക്സി ചെയ്യുന്നില്ല

MQTT പ്രസിദ്ധീകരണ, വരിക്കാരം എന്നിവയുടെ കൈമാറ്റങ്ങൾ നിർവചിക്കുന്നു: ഉപകരണം വായിക്കാൻ അനുവാദമുള്ള ഒരു വിഷയ ഫിൽട്ടറിൽ വരിക്കാരനാകുന്നു, അധികാരമുള്ള കൺട്രോളർ യോജിക്കുന്ന വിഷയത്തിൽ പ്രസിദ്ധീകരിക്കുന്നു. ബ്രോക്കർ പ്രസിദ്ധീകരണങ്ങളെ വരിക്കാരങ്ങളുമായി ചേർത്ത് പകർപ്പുകൾ എത്തിക്കുന്നു. ബ്രൗസർ അഭ്യർത്ഥന എന്താണെന്ന് അതിന് അറിയില്ല, ഉപകരണത്തിന്റെ വെബ് സർവറിലേക്ക് HTTP GET അയക്കുകയുമില്ല. നിലവിലുള്ള ഫേംവെയർ HTTP മാത്രം സംസാരിക്കുന്നുവെങ്കിൽ, ബ്രോക്കർ രൂപകൽപ്പനയ്ക്ക് ആപ്ലിക്കേഷൻ മാറ്റമോ ഉദ്ദേശ്യപൂർവമുള്ള വിവർത്തന ഘടകമോ വേണം.

വിഷയങ്ങളുടെ പേരുകളും അധികാരമല്ല. മിക്ക ബ്രോക്കറുകളും ഓരോ ക്ലയന്റിനും പ്രവേശന നിയന്ത്രണ പട്ടികകൾ പിന്തുണയ്ക്കുന്നു, ഉപകരണങ്ങൾ ഒരു ആഗോള നാമസ്ഥലം പങ്കിടുന്നതിന് പകരം അവയുടെ സ്വന്തം പ്രസിദ്ധീകരണ, വരിക്കാര മരങ്ങളിൽ പരിമിതപ്പെടുത്തണം.

ഉപകരണ വിഭവങ്ങൾ TLS-ന്റെ രൂപം തീരുമാനിക്കുന്നു

ESP8266-ന് പരിമിതമായ RAM ഉണ്ട്, TLS ഹാൻഡ്ഷേക്ക് അത് ചെയ്യുന്ന ഏറ്റവും ചെലവേറിയ കാര്യമാണ്. Arduino കോർ BearSSL നൽകുന്നത് കൃത്യമായി ഈ പരിമിതിക്ക് വേണ്ടിയാണ്, CA പരിശോധിക്കുന്നതും ഫിംഗർപ്രിന്റ് പിൻ ചെയ്യുന്നതും തമ്മിലുള്ള തിരഞ്ഞെടുപ്പ് മെമ്മറി കാൽപ്പാടും മറ്റൊരു പേരിനുള്ള സാധുവായ സർട്ടിഫിക്കറ്റുള്ള ആക്രമണകാരിക്ക് ചെയ്യാനാകുന്നതും രണ്ടും മാറ്റുന്നു. ഹീപ്പ് അനുവദിക്കുമ്പോൾ ബ്രോക്കറിന്റെ CA പരിശോധിക്കുന്നതാണ് ശക്തമായ ഓപ്ഷൻ. പേലോഡിന്റെ വലിപ്പവും പ്രധാനമാണ്: MQTT ക്ലയന്റ് ഒരു ബഫർ സൂക്ഷിക്കുന്നു, അതിനെക്കാൾ വലിയ സന്ദേശങ്ങൾ ബഫർ ഉദ്ദേശ്യപൂർവം വർദ്ധിപ്പിക്കാത്ത പക്ഷം നിശ്ശബ്ദമായി മുറിക്കപ്പെടുന്നു.

കീപ്പ്അലൈവും സോക്കറ്റ് സമയപരിധികളും ഒരേ ബജറ്റിന്റെ ഭാഗമാണ്, കാരണം മരിച്ച കണക്ഷൻ ഒരിക്കലും ശ്രദ്ധിക്കാത്ത ക്ലയന്റ് പിശക് അറിയിക്കാതെ കമാൻഡുകൾ സ്വീകരിക്കുന്നത് നിർത്തുന്നു.

കടിക്കുന്ന സന്ദേശ അർത്ഥശാസ്ത്രം

സൂക്ഷിച്ച സന്ദേശം ബ്രോക്കർ സംഭരിച്ച് പിന്നീട് യോജിക്കുന്ന വരിക്കാർക്ക് നൽകുന്നു, ഇത് നിലവിലെ അവസ്ഥയ്ക്ക് മികച്ചതും ഒറ്റത്തവണ കമാൻഡുകൾക്ക് അപകടകരവുമാണ്: വീണ്ടും കണക്ട് ചെയ്യുന്ന ഉപകരണത്തിന് ഇന്നലത്തെ കമാൻഡ് പുതിയതെന്ന പോലെ ലഭിച്ചേക്കാം. QoS 1 കുറഞ്ഞത് ഒരിക്കൽ എത്തിക്കുന്നത് ഉറപ്പാക്കുന്നു, അതിനാൽ പകർപ്പുകൾ സാധാരണമാണ്, ആപ്ലിക്കേഷൻ ആവർത്തന-സുരക്ഷിതമായിരിക്കണം, അനുയോജ്യമായി അത് നിരസിക്കാവുന്ന ഒരു ഐഡന്റിഫയറോ ടൈംസ്റ്റാമ്പോ ഉണ്ടായിരിക്കണം. അവസാന ഇച്ഛ ഉപകരണം വീഴുമ്പോൾ നിങ്ങൾക്ക് സ്റ്റാറ്റസ് സിഗ്നൽ നൽകുന്നു, പക്ഷേ കണക്ഷൻ തൂങ്ങിനിൽക്കാതെ യഥാർത്ഥത്തിൽ പരാജയപ്പെട്ടാൽ മാത്രം.

ക്ലീൻ സെഷന്റെ സ്വഭാവം നിങ്ങൾ ഇല്ലാത്തപ്പോൾ ബ്രോക്കർ നിങ്ങളുടെ വരിക്കാരങ്ങൾ സൂക്ഷിക്കുന്നുണ്ടോ എന്ന് തീരുമാനിക്കുന്നു, അതിൽ തെറ്റ് ചെയ്യുന്നതാണ് ചില ഉപകരണങ്ങൾ ഓരോ പുനഃകണക്ഷനും ശേഷം ആദ്യ സന്ദേശം നഷ്ടപ്പെടാൻ കാരണം.

TLS ബ്രോക്കർ വരെയുള്ള ഭാഗം സംരക്ഷിക്കുന്നു. ഇത് ബ്രോക്കർ ഓപ്പറേറ്റർക്കെതിരെ പേലോഡിന്റെ എൻഡ്-ടു-എൻഡ് എൻക്രിപ്ഷൻ അല്ല, അയാൾക്ക് നിങ്ങൾ അതിലൂടെ പ്രസിദ്ധീകരിക്കുന്ന എല്ലാം വായിക്കാം.

ജീവിതചക്രം പരിമിതപ്പെടുത്തി ഹാനികരമല്ലാത്ത ഡാറ്റ ഉപയോഗിച്ച് പരീക്ഷിക്കുക

കർശനമായ പുനഃശ്രമ ലൂപ്പിന് പകരം ബാക്ക്ഓഫോടെ പുനഃകണക്ഷൻ ആസൂത്രണം ചെയ്യുക, സെഷൻ സ്ഥിരമല്ലെങ്കിൽ വ്യക്തമായി വീണ്ടും വരിക്കാരനാകുക, കണക്ഷൻ ഫലം ലോഗ് ചെയ്യുക, അങ്ങനെ നിശ്ശബ്ദ ഓഫ്ലൈൻ ഉപകരണം തെളിവ് അവശേഷിപ്പിക്കും. പുനഃകണക്ഷൻ വഴി ഒന്നും ചെയ്യാത്ത സാമ്പിൾ പേലോഡുകൾ ഉപയോഗിച്ച് പരീക്ഷിക്കുക, കാരണം കമാൻഡ് ചാനലിന്റെ ആദ്യ ഉത്പാദന പരീക്ഷണം യഥാർത്ഥ കമാൻഡ് ആകരുത്. തുടർന്ന് പഴയ സൂക്ഷിച്ച സന്ദേശം പുനഃകണക്ഷനിൽ എന്ത് ചെയ്യുന്നു എന്ന് സ്ഥിരീകരിക്കുക, ആ സ്വഭാവം ഓരോ വിഷയത്തിനും സ്വീകാര്യമാണോ എന്ന് തീരുമാനിക്കുക.

ഇങ്ങനെ ചെയ്യുമ്പോൾ, രൂപകൽപ്പന ഒരു ഇൻബൗണ്ട് നെറ്റ്വർക്ക് ആവശ്യകത നീക്കി ഉപകരണ സോഫ്റ്റ്വെയർ, ബ്രോക്കർ നയം, സന്ദേശ അർത്ഥശാസ്ത്രം എന്നിവ മറഞ്ഞിരിക്കുന്ന അനുമാനങ്ങൾക്ക് പകരം കാണാവുന്ന ജോലിയായി വിടുന്നു.

അനുബന്ധ ലേഖനങ്ങൾ