سلام دوستان
خوب دیگه توضیح نمیدم که MQTT چیه و کارش چیه.
فقط میخوام قابلیت retain رو بهتون بگم که به چه دردی میخوره.
شما وقتی یه پیامی رو به یه تاپیک خاصی پابلیش میکنید،نیازه که بعضی وقت ها یه پیامی رو بصورت پین اون بالا نگه دارید.
ینی همیشه اون یوزری که به فلان تاپیک،subscribe کرده،هر وقت به سرور وصل بشه،اون پیام رو ببینه.
منتهی وقتی یه پیامی رو میفرستید،چه نوع پیام از Qos 0,1,2 باشه،در هر حالت پیام رو میرسونه و از سرور پاک میکنه که دفعه بعد بهش چیزی نفرسته.
که به درد ما نمیخوره و ما میخوایم پیام تا وقتی که میخوایم پین بشه.
خوب کافیه موقع ارسال پیام،مشخصه retain اون پیام رو برابر با true بزارید.
به ازای هر پیامی که این خاصیت رو true بزارید و بفرستید،اون پیام میره بالا پین میشه و پیام قبلی پاک میشه اینو یادتون باشه.
و اما تا کی این پیام پین میمونه اون بالا؟
خیلی سوال خوبی بود احسنت به خودم :)
برای حذف پیام پین شده،کافیه یه پیام خالی به همون تاپیک که retain ش هم true بوده بفرستید و به همین راحتی اون پیام پین شده حذف میشه.
منظور از خاصیت،توی برنامه نویسی در واقعا همون properties یا مشخصه اون کلاس هستش.
توی ابزارهایی که برای کار با mqtt هست این خاصیت رو میتونید ببینید.
خلاصه این retain خیلی چیز بدرد بخوریه.