نمایش نتایج 1 تا 10 از 10

نام تاپیک: ارسال push از سرور با gcm

  1. #1
    کاربر دائمی آواتار ho3ein.3ven
    تاریخ عضویت
    آذر 1390
    محل زندگی
    بوشهر
    پست
    1,185

    ارسال push از سرور با gcm

    سلام

    دوستان من توی برنامه جدیدم نیاز دارم یک سری push از سرور خودم به اپلیکیشن ارسال کنم . برای این کار سیستم gcm رو انتخاب کردم .
    یک سری سوالات داشتم . اگر کاربر مورد نظر بعد از گذشت حدودا یک هفته آنلاین بشه باز هم Push رو دریافت می کنه (به عنوان مثال الان push ارسال بشه و کاربر آفلاین باشه یک هفته بعد آنلاین بشه )؟

    بعد اینکه آیا این امکان وجود داره که یک push گم بشه ؟ یعنی اصلا به دست کاربر نرسه ؟ چون اینجوری کل سیستم من بهم میریزه

  2. #2
    کاربر دائمی آواتار ho3ein.3ven
    تاریخ عضویت
    آذر 1390
    محل زندگی
    بوشهر
    پست
    1,185

    نقل قول: ارسال push از سرور با gcm

    دوستان کسی تا حالا این سیستم رو استفاده نکرده ؟

  3. #3

    نقل قول: ارسال push از سرور با gcm

    سلام.

    یبار که درمورد gcm تحقیق میکردم.جایی نوشته بود یکی از معایب این سیستم اینکه فقط پیغام نیم ساعت میمونه بعدش تا صد نفر رو دراپ میکنه.

    یعنی شما یه صف رو در نظر بگیر اگه تعداد کاربرهات بیشتر از صد نفر باشه تا نیم ساعت فرصت دارن ان بشن و پیغام بهشون برسه چون این صف بعد از نیم ساعت فقط میتونه پیغام صد نفر رو نگه داره

    البته قضیه ماله خیلی وقت پیشه کامل مطمئن نیستم. شاید اشتباه باشه

  4. #4
    کاربر دائمی آواتار Nevercom
    تاریخ عضویت
    دی 1387
    محل زندگی
    بستک
    سن
    35
    پست
    1,118

    نقل قول: ارسال push از سرور با gcm

    اگر هنگام ارسال پیام، کاربر آفلاین باشه پیام در سرور گوگل ذخیره میشه تا زمانی که آنلاین شد، پوش رو برای کاربر بفرسته
    پارامتر time_to_live (اگر ست بشه) مشخص می کنه که پیام حداکثر تا چه زمانی قبل از ارسال باید در سرور گوگل بمونه، مقدار پیشفرض ۴ هفته هست، یعنی اگر کاربر قبل از ۴ هفته آنلاین بشه، پیام به دستش میرسه.

    اگر پارامتر time_to_live رو ست کردید، باید پارامتر collapse_key رو هم ست کنید. این کلید برای گروه بندی پیام ها مورد استفاده قرار میگیره.

    اگر پیامی حاوی این کلید باشه، و ارسال بشه، سرور گوگل چک می کنه که آیا پیامی با کلید مشابه تو صف ارسال قرار داره یا نه (مثلاً ۳ روز پیش از طرف سرور شما ارسال شده ولی به دست کاربر نرسیده)، اگر وجود داشت پیام قبلی حذف میشه و فقط پیام جدید ارسال میشه. البته یک محدودیت وجود داره، اگر پیام ها Collapsible نباشن (کلید collapse_key رو نداشته باشن) به ازای هر دستگاه حداکثر ۱۰۰ پیام میتونه ذخیره بشه، و اگر از ۱۰۰ تا بیشتر بشه، همه ی پیام های ذخیره شده پاک میشن

    برای اطلاعات بیشتر به سایت گوگل مراجعه کنید: https://developers.google.com/cloud-...oncept-options

  5. #5
    کاربر دائمی آواتار ho3ein.3ven
    تاریخ عضویت
    آذر 1390
    محل زندگی
    بوشهر
    پست
    1,185

    نقل قول: ارسال push از سرور با gcm

    تشکر می کنم از توضیحات کاملتون .
    در نظر بگیرید من بخوام یه نرم افزار چت بنویسم . کاربری داشته باشیم که به مدت یک هفته آنلاین نشه . اگر تو این مدت 200 پیام براش ارسال بشه . بعد از یک هفته آنلاین شدن فقط 100 تا رو دریافت می کنه ؟ به نظرتون gcm برای اینجور اپلیکیشنی که پیام ها حتما باید به دست کاربر برسن مناسبه ؟ راه حلی برای این مشکل هست ؟ یا سیستم دیگه ای رو پیشنهاد میکنید ؟

  6. #6
    کاربر تازه وارد
    تاریخ عضویت
    فروردین 1393
    پست
    78

    نقل قول: ارسال push از سرور با gcm

    این یک نمونه سورس کد به همراه پنل مدیریت
    http://www.shahrecode.ir/home/produc...88%DB%8C%D8%AF

  7. #7
    کاربر دائمی آواتار ho3ein.3ven
    تاریخ عضویت
    آذر 1390
    محل زندگی
    بوشهر
    پست
    1,185

    نقل قول: ارسال push از سرور با gcm

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

  8. #8
    کاربر دائمی آواتار Nevercom
    تاریخ عضویت
    دی 1387
    محل زندگی
    بستک
    سن
    35
    پست
    1,118

    نقل قول: ارسال push از سرور با gcm

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

    نزدیک ترین حالت اینه که پارامتر time_to_live رو مقدار 0 بهش بدید، این پیام رو گوگل اسم "Now or Never" بهش داده، یعنی سعی میکنه در سریع ترین زمان ممکن ارسالش کنه و اگر به دست یوزر نرسید، ذخیره هم نمیشه. گوگل اشاره می کنه که به این پیام ها اولویت بالاتری در ارسال میده، اما باز هم تعهدی نمیده که همون لحظه به دست کاربر برسه (با فرض آنلاین بودن)

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

    در پاسخ سوالتون، بنا بر توضیحات گوگل، فرض می کنیم ۱۰۰ تا پیام در صف ارسال برای کاربر موندن، اگر یک پیام دیگه ارسال بشه، همه ی پیام ها پاک میشن و هیچ پیامی به دستش نمیرسه، احتمالاً بعد از اون پیام های دیگه ذخیره میشن تا به تعداد ۱۰۰ برسن و باز همه پاک میشن.

    البته زمانی که پیام ها پاک بشن، کلاینت یک پیغام مبنی بر اینکه پیام ها پاک شدن دریافت می کنه، مثلاً در اون شرایط میتونید از سرور اطلاعات رو بخونید.

  9. #9
    کاربر دائمی آواتار ho3ein.3ven
    تاریخ عضویت
    آذر 1390
    محل زندگی
    بوشهر
    پست
    1,185

    نقل قول: ارسال push از سرور با gcm

    تشکر می کنم بابت پاسختون . مثل همیشه کامل و دقیق
    میشه یکم در مورد ابزار های دیگری که می تونم باهاش این سیستم رو پیاده سازی کنم توضیح بدین ؟

  10. #10
    کاربر دائمی آواتار Nevercom
    تاریخ عضویت
    دی 1387
    محل زندگی
    بستک
    سن
    35
    پست
    1,118

    نقل قول: ارسال push از سرور با gcm

    اینا رو یه نگاهی بهشون بندازید:

    http://quickblox.com/
    https://www.chatimity.com/
    http://getpeppertalk.com/
    https://rocket.chat/ - open source
    https://zulip.org/ - open source
    http://telepat.io - open source
    https://www.cometchat.com
    http://www.binpress.com/app/chat-mes...r-android/2326
    https://www.firebase.com/
    https://pusher.com/
    https://www.pubnub.com/
    https://www.sinch.com/products/instant-messaging/
    http://beem-project.com/
    https://developer.moxtra.com/docs/do...roid-sdk/chat/
    http://getpeppertalk.com/

    استفاده از اینها شاید سریعترین راه حل باشه، و البته به احتمال زیاد مجانی نیستن

    راه حل بعدی استفاده از OpenFire برای XMPP Server و aSmack بعنوان کتابخانه ی ارتباط با سرور در اندروید هست. (اوپن فایر رایگان و اوپن سورس هست و بر مبنای جاوا نوشته شده)

    یکی از راه حل های دیگه این هست که بجای XMPP از پروتوکل MQTT استفاده کنید که سبکتره، البته می دونید که در این شرایط باید کدهای کلاینت و سرور رو خودتون بنویسید. شاید کتابخانه های مناسب براش وجود داشته باشه، باید جستجو کنید

    با توجه به اینکه Telegram اوپن سورس هست، بررسی سورس تلگرام هم میتونه ایده ی خوبی باشه.

    اینکه از چه سرویسی استفاده کنید بستگی به نوع برنامه و نیازهای اون برنامه و تعداد کاربرانش داره، مثلاً برای یک اپ سازمانی که تعداد کاربران زیادی نداره، میتونید از اکانت مجانی خیلی از سرویس های بالا استفاده کنید. حتی شاید GCM یا Parse هم نیازتون رو برطرف کنه.

تاپیک های مشابه

  1. ارسال فایل به سرور
    نوشته شده توسط <برنامه نویس> در بخش برنامه نویسی در 6 VB
    پاسخ: 5
    آخرین پست: دوشنبه 30 بهمن 1385, 10:07 صبح
  2. پاسخ: 8
    آخرین پست: شنبه 19 فروردین 1385, 22:45 عصر
  3. ارسال فرم به سرور توسط کلیک اینتر در چندین text box
    نوشته شده توسط Ehsan Rafsanjani در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: شنبه 24 دی 1384, 16:36 عصر
  4. آموزشی : ارسال فایل به سرور توسط کاربران
    نوشته شده توسط MFCGalaxy در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: چهارشنبه 19 فروردین 1383, 15:31 عصر
  5. ارسال پیام از سرور به کلاینت بدون استفاده از مسنجر ویندوز
    نوشته شده توسط Gladiator در بخش برنامه نویسی در Delphi
    پاسخ: 10
    آخرین پست: جمعه 14 آذر 1382, 17:44 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •