क्या एक MQTT ग्राहक स्वयं द्वारा बनाए गए विषय की सदस्यता ले सकता है?


18

मेरी समझ में, MQTT में एक विषय बनाया जाता है जब एक ग्राहक इसी विषय नाम के साथ कुछ प्रकाशित करता है।

किसी विषय को कॉन्फ़िगर करने की आवश्यकता नहीं है, इस पर प्रकाशन पर्याप्त है।

से यहाँ

एक ग्राहक के लिए अपने स्वयं के विषय की सदस्यता लेना संभव है, प्रकाशित होने के बाद, इसे बनाया? मुझे विनिर्देशों में इस पर कोई प्रतिबंध नहीं मिला । यह संभव असामान्य व्यवहार के रूप में सूचीबद्ध नहीं है:

5.4.8 असामान्य व्यवहारों का पता लगाना

संभावित सुरक्षा घटनाओं का पता लगाने के लिए सर्वर कार्यान्वयन क्लाइंट व्यवहार की निगरानी कर सकता है। उदाहरण के लिए:

  • बार-बार कनेक्शन के प्रयास
  • बार-बार प्रमाणीकरण के प्रयास
  • कनेक्शन की असामान्य समाप्ति
  • विषय स्कैनिंग (कई विषयों को भेजने या सदस्यता लेने का प्रयास)
  • असंदिग्ध संदेश भेजना (विषयों का कोई ग्राहक नहीं)
  • ग्राहक जो कनेक्ट करते हैं लेकिन डेटा नहीं भेजते हैं

इसके आधार पर, मुझे लगता है कि यह निश्चित रूप से संभव है। इसलिए मुझे इस बात में दिलचस्पी है कि इस सुविधा के मामले क्या हैं?

मानक ऐसे तंत्र की अनुमति क्यों देता है, क्या यह विषयों के मालिक को ट्रैक करने के लिए जटिल होगा? इसलिए इसके बजाय यह केवल ग्राहकों को अपने विषय की सदस्यता लेने की अनुमति देता है।

एक उपयोग मामला मैं सोच सकता हूं कि इस तरह से एक ग्राहक अपने प्रकाशित डेटा को सत्यापित कर सकता है।

जवाबों:


19

हां, किसी ऐसे विषय की सदस्यता लेना संभव है जो स्वयं द्वारा बनाया गया हो।

एक MQTT क्लाइंट एक ही समय में एक प्रकाशक और ग्राहक दोनों हो सकते हैं। MQTT शब्दों में, एक क्लाइंट में subscribersऔर दोनों शामिल हैं publishers

मुझे इस बात में दिलचस्पी है कि इस सुविधा के उपयोग मामले क्या हैं?

एक संभावित उपयोग मामला (मुझे लगता है) है, मान लीजिए कि तीन क्लाइंट (x, y, z) x-topicद्वारा बनाए गए विषय के लिए सब्सक्राइब किए गए हैं x। जब भी कोई संदेश प्रकाशित होता है x-topic, तो उस विषय पर सदस्यता प्राप्त सभी को संदेश प्राप्त होगा। यदि yकिसी विषय पर एक संदेश प्रकाशित किया जाता है x-topic(मुझे लगता है कि किया जा सकता है), अगर xवह उस विषय की सदस्यता नहीं लेता है, भले ही उसने विषय बनाया हो, तो वह संदेशों को प्राप्त नहीं करेगा।

तो एक ग्राहक को संदेश प्राप्त करने के लिए किसी विषय पर सदस्यता लेने की आवश्यकता होती है, भले ही यह उस विषय का मूल निर्माता हो।

लेकिन दलालों को एक माध्यम के रूप में उपयोग करके तंत्र को नियंत्रित किया जा सकता है।


हां, इस विकल्प ने मेरे दिमाग को पार कर दिया। केवल, मुझे यकीन नहीं था कि एक नया ग्राहक किसी मौजूदा विषय पर प्रकाशित कर सकता है, पहले से ही अन्य प्रकाशक द्वारा उपयोग किया जाता है।
बेंस कौलिक्स

हां, एक नया क्लाइंट किसी मौजूदा विषय पर प्रकाशित कर सकता है। याद रखें कि क्लाइंट सीधे संवाद नहीं करते हैं, हर प्रकाशन और सदस्यता दलाल के माध्यम से होती है।
bravokeyl

0

हाँ।

MQTT क्लाइंट एक ब्रोकर से जुड़े होते हैं जो एक क्लाउड या कुछ अन्य डिवाइस हो सकते हैं।

विषय निर्माण जैसी कोई चीज नहीं है। उन्हें एक संदेश के लिए एक शीर्षक के रूप में उपयोग किया जाता है। इसलिए यदि आपके ग्राहक ने किसी विषय पर सदस्यता ली है और यदि वह उस विषय पर कुछ प्रकाशित करता है, तो ग्राहक को फिर से ग्राहक के माध्यम से संदेश प्राप्त होगा।

अच्छे ब्रोकरों के उदाहरण उपकरणों पर चलने के लिए मॉस्किटो हैं और क्लाउड आधारित ब्रोकर के लिए क्लाउडमैट


4
यह वास्तव में ज्ञान के शरीर का विस्तार नहीं करता है जो एक साल पहले पहले ही प्रदान किए गए अन्य उत्तर से परे है। प्रश्नों के उत्तर देने के लिए भी आप नए उत्तर जोड़ने के लिए स्वतंत्र हैं। हालांकि, उन उत्तरों को प्रश्न या समाधान में अतिरिक्त या अद्यतन जानकारी प्रदान करनी चाहिए।
Helmar
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.