کاربرد CleanSession در MQTT
188
۲ سال پیش
0

کاربرد CleanSession در MQTT

سلام

ایام تاسوعا و عاشورا رو تسلیت عرض میکنم خدمت دوستان.

یه موضوع خیلی مهمی که توی پروتکل MQTT هست اینه که پیام هایی که برای کاربرا ارسال میشه حتما به دستشون برسه.

این موضوع رو با QOS اشتباه نگیریدا.

توی این پارامتر شما نوع دریافت پیام رو دارید مقدار میدید و یا تضمین میکنید.

منظور من اینه که حتما به دست کاربری که بعد پابلیش یه پیامی ارسال شده برسه.

ینی من یه عبارت مثلا "سلام امید خوبی" رو به همه پابلیش کردم.

این پیام به همه کاربرایی که subscribe کردن میره ولی اگه کاربر جدیدی بخواد ساب اسکرایب کنه تکلیفش چیه؟

همه اون پیام هایی که ارسال شده بود رو از دست میده.

و اما برا این مشکل آیا راه حلی ارایه شده؟

بله پروتکل MQTT میگه اگه شما موقع کانکت شدن به بروکر،پارامتر cleansession رو برابر با false بزارید.

حتی پارامتر QOS روی این پارامتر cleansession تاثیر داره.

ترجیحا خودم QOS رو روی 1 میزارم چون روی 2 که سرعت به مرور پایین تر از مقدار 1 و 0 است و 0 هم نمیزارم چون تضمینی به ارسال پیام نمیده بهمون.

خلاصه یه تصویری براتون پیوست کردم که طبق اون میتونید متوجه بشید که چه بلایی سر پیام میاد در حالت های مختلف.

اگه به تصویر دقت کرده باشید،اگه cleansession برابر با false باشه و qos رو 1 بدید،حتما پیام های جا مونده رو دریافت میکنید.

البته توضیحات بیشتری میشه در مورد اینا داد ولی مهم اینه ما با مقدار دهی false و QOS 1 میتونیم به نتیجه مطلوب برسیم.

شما میتونید برای تست این موضوع و نتایجش به لینک زیر برید:

http://www.steves-internet-guide.com/mqtt-clean-sessions-example/

اگه سوالی هم داشته باشید کافیه مطرح کنید،اقای استیو در عرض یک روز با توضیحات خوب به شما جوابشو میده.

موفق باشید

برچسب ها :
  • mqtt
نظر خود را بنویسید...