در پروتکل MQTT، دو مفهوم کلیدی وجود دارد که پایه ارتباط بین دستگاهها را شکل میدهد: Topic و Publish/Subscribe. این دو مفهوم باعث میشوند دادهها به صورت سازمانیافته، سریع و قابل اعتماد بین دستگاهها منتقل شوند.
Topic چیست؟
Topic یک مسیر یا شناسه سلسلهمراتبی است که پیامها بر اساس آن دستهبندی میشوند. میتوان آن را به عنوان یک کانال ارتباطی تصور کرد که دستگاهها میتوانند به آن پیام ارسال کنند یا پیامها را از آن دریافت کنند. به عنوان مثال، موضوعی مانند home/livingroom/temperature میتواند دادههای دما از اتاق نشیمن را انتقال دهد.
ساختار Topic در MQTT سلسلهمراتبی است و با استفاده از کاراکتر / شاخهبندی میشود. این ساختار به مشترکان امکان میدهد که پیامها را دقیقاً از موضوع مورد نظر خود دریافت کنند یا با استفاده از Wildcardها، پیامهای چندین موضوع مرتبط را یکجا دنبال کنند.
سیستم Publish/Subscribe
مدل Publish/Subscribe (یا Pub/Sub) روشی است که دستگاهها در آن به صورت غیرمستقیم با یکدیگر ارتباط برقرار میکنند. در این مدل، سه نقش اصلی وجود دارد:
۱. Publisher (انتشاردهنده): دستگاهی است که دادهها را تولید کرده و به یک Topic مشخص ارسال میکند.
۲. Subscriber (مشترک): دستگاهی است که به یک یا چند Topic مشترک شده و پیامهای مرتبط با آن را دریافت میکند.
۳. Broker (میانجی): سروری است که وظیفه دریافت پیامها از Publisherها و توزیع آنها به Subscriberها را بر عهده دارد. Broker باعث جدایی مستقیم بین دستگاهها میشود و مدیریت جریان پیامها و تضمین تحویل آنها را برعهده دارد.
مزایای مدل Publish/Subscribe
مدل Pub/Sub چندین مزیت کلیدی دارد: ارتباط غیرمستقیم بین دستگاهها، کاهش پیچیدگی شبکه، امکان مقیاسپذیری بالا، ارسال پیامها به چندین مشترک همزمان و سازگاری با محیطهای ناپایدار یا کمپهنای باند. این مدل باعث میشود سیستمهای IoT سریع، انعطافپذیر و قابل اطمینان باشند.
در بخشهای عملی این دوره، یاد میگیریم چگونه با استفاده از پایتون Publisherها و Subscriberها را ایجاد کنیم و پیامها را از طریق Topicها به شکل واقعی و کاربردی انتقال دهیم.