غواصی در اعماق: زیر پوست push notification

اینم یه تجربه پراکنده دیگه!

من توی یکی از کارهایی که انجام میدادم نیاز پیدا کردم که تقریبا به صورت آنی به کلاینت خبر بدم که یه اتفاق افتاده و کلاینت به اون اتفاق پاسخ مناسب بده. با توجه به این نیاز و دونستن اینکه نرم‌افزارهای موبایل عملا به راحتی اتفاقات سمت سرور رو به کلاینت خبر میدن رفتم سراغ اینکه بدونم اونها چطور کار میکنن.

خب اول از همه ویندوز، iOS و آندروید هر سه در سطح سیستم عامل این عملیات رو پشتیبانی میکنن. بدین صورت که اگه شما بخوای اطلاعاتی رو به موبایل push کنی بایستی تقریبا مراحل زیر رو طی کنی:

  1. نرم افزاری رو که میخوای براش اطلاعات بفرستی به فراهم کننده این سرویس معرفی کنی و ازش یه شبه اکانت بگیری
  2. توی نرم افزار موبایل کارها مرتبط با پیدا سازی این سرویس رو انجام بدی
  3. از سمت سرور به سرورهای فراهم کننده وصل بشی و بدونی چه کلاینت هایی داری و به اون کلاینت‌ها اطلاعات رو push کنی.

خب دونستن این اطلاعات خیلی به من برای رسیدن به هدفم کمک نمی‌کرد. پس رفتم سراغ یه جای دیگه. ما راه‌حل‌هایی داریم به اسم Backend as a Service که اونها اداعا میکنن که سرور push notification دارن. بعد از بررسی و خوندن مستندات و یکم دست و پنجه نرم کردن با این راه‌حل‌ها فهمیدم که کارکردن و سرو کله زدن سرورهای فراهم کننده خیلی راحت و تو دل برو نیست و برای پیاده سازی باید کلی نحوه ارسال این اطلاعات مدیریت بشه. سرور push notification توی این راه‌حل‌ها سعی میکردن این مدیریت رو انجام بدن. این اطلاعات هم خوب بود اما خیلی به درد نمی‌خورد.

پس یه قدم به جلو رفتم که بدونم زیر این سیستم‌ها از چی استفاده میشه. پس یکم بررسی پیدا کردم(از اینجا، اینجا، اینجا و اینجا) که اپل و گوگل و خدا بیامرز نوکیا از پروتکل xmpp برای ارتباط کلاینت‌ها و سرورهاشون استفاده میکنن. این سرنخ خوبی بود. این نشون میداد که کل سیستم براساس یه نوع چت خاص کار میکنه. یعنی همه کلاینت‌های متصل به اینترنت آنلاین هستن و با سرور اتصال دارن. حالا سرور با رسیدن یه پیغام، اون رو برای موبایل یا موبایلها میفرسته.

خب همین سرنخ کافی بود تا من برم و بیشتر بررسی کنم ببینم تکنولوژی‌های چت چی هستن و چطور میشه ازشون استفاده کرد. پروتکل‌های متفاوتی رو توی اینجا پیدا کردم. اما اکثرا یا ویژگی‌هایی داشتن که من نمیخواستم( مثلا ارسال صدا، تصویر و …) یا اینکه خیلی معمول نبودن یا مقبولیت عام نداشتن. پس از بررسی اولیه به نظرم استفاده از یکی از این دوتا پروتکل میتونه برامون push notification به همراه داشته باشه

فعلا همین!

پ.ن. این پست یه قسمت دیگه هم خواهد داشت که از منظر پیاده‌سازی به این موضوع نگاه میکنه.

 

 

3 دیدگاه در “غواصی در اعماق: زیر پوست push notification

  1. علی اکبری می‌گوید:

    فکر کنم مهم تر از همه پروتکل MQTT رو از قلم انداختید. من هم چند وقته خیلی درگیر این مسئله هستم و امنیت برام خیلی مهمه. فعلا دارم هزینه فایده هریک رو می سنجم که از سروسی های اماده استفاده کنم یا خودم راه بندازم. مخاطرات پشتیبانی سرویس ها رو هم فکر میکنم بتونم رد کنم چون تجربه خوبی توی این زمینه دارم. میلیم یه این سمته که خودم بیارم بالا و بتونم تجربه خوبی توی این زمینه کسب کنم. خوشحال میشم بتونیم توی مسائل از لحاظ اطلاعاتی به هم کمک کنیم. تشکر از سایت خوبتون

    • Abbas Yazdanpanah می‌گوید:

      من توسط یکی دیگه از خوانندگان وبلاگ مثل شما با MQTT آشنا شدم. اتفاقا push notification رو هم باهاش پیاده کردم. اما مشکلم این بود که من نیاز به پیاده سازی مدل queue‌ داشتم ولی MQTT تنها مدل pub-sub رو پیاده‌سازی می‌کنه.

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

      من خوشحال میشم بتونم کمکتون کنم

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *