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

نام تاپیک: ارتباط real time نرم افزار اندرویدی با سرور اینترنت

  1. #1

    Question ارتباط real time نرم افزار اندرویدی با سرور اینترنت

    به نام خدا
    سلام دوستان
    من یک نرم افزار اندرویدی نوشتم که به یک وب‌سرور وصل میشه و آخرین تغییرات رو ازش میخونه. با پروتکل RestFul و با Http GET دارم این کارو می کنم. عیب این روش اینه که real time نیست، چون من میخام بلافاصله بعد از تفییرات تو سرور، نرم افزار با خبر بشه، اما اینجا مجبورم یک Trade off بین حجم اینترنت و زمان انجام بدم و مثلا هر 5 = n ثانیه یک درخواست GET بزنم و آخرین وضعیت رو بخونم.
    مثلا فرض کنید یک کلاینت تلگرام که با یک کلاینت دیگه در ارتباطه و یکیشون داره تایپ میکنه، real time برای یکی دیگه نوشته می شه ... is typing
    سمت سرور رو با هر چیزی از جمله ASP و PHP و ... میتونم پیاده کنم، اما نمیدونم سمت نرم افزار رو باید چطور پیاده کنم!!!
    البته تو شبکه داخلی مشکلی نیست و با ارتباط tcp/ip به راحتی این کار انجام شدنیه، مشکل من تو بستر اینترنته که سرور، IP نرم افزار رو نمی تونه داشته باشه. نرم افزار ممکنه ساعت ها به سرور وصل باشه.
    خوشحال میشم کمکم کنید.
    ممنون

  2. #2
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: ارتباط real time نرم افزار اندرویدی با سرور اینترنت

    سلام
    به شما پیشنهاد میدهم برای برنامه هائی که برایتان سرعت و کیفیت مهم است حتما با سوکت برنامه نویسی کنید اگر دقت کنید برنامه های معروف و کاربردی عموما" با سوکت هستند در ضمن استفاده از وب سرویس نیاز به یک میزبان مثل IE و ... دارند ولی میتوانید با Application Server شخصی خودتان که روی سرور روی پورت خاصی پیاده سازی کرده اید اینکار را انجام دهید البته قبول دارم که برنامه نویسی سوکت خیلی خیلی سخت است و استفاده از وب سرویس خیلی راحتر است ولی برای کارهای مهم ارزشش را دارد من قبلا" تجربه سوکت و وب سرویس WCF و Remoting را داشته ام سوکت خیلی بهتر از وب سرویس است ولی پیر آدم در می آید

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

    نقل قول: ارتباط real time نرم افزار اندرویدی با سرور اینترنت

    نقل قول نوشته شده توسط ic_teta مشاهده تاپیک
    به نام خدا
    سلام دوستان
    من یک نرم افزار اندرویدی نوشتم که به یک وب‌سرور وصل میشه و آخرین تغییرات رو ازش میخونه. با پروتکل RestFul و با Http GET دارم این کارو می کنم. عیب این روش اینه که real time نیست، چون من میخام بلافاصله بعد از تفییرات تو سرور، نرم افزار با خبر بشه، اما اینجا مجبورم یک Trade off بین حجم اینترنت و زمان انجام بدم و مثلا هر 5 = n ثانیه یک درخواست GET بزنم و آخرین وضعیت رو بخونم.
    مثلا فرض کنید یک کلاینت تلگرام که با یک کلاینت دیگه در ارتباطه و یکیشون داره تایپ میکنه، real time برای یکی دیگه نوشته می شه ... is typing
    سمت سرور رو با هر چیزی از جمله ASP و PHP و ... میتونم پیاده کنم، اما نمیدونم سمت نرم افزار رو باید چطور پیاده کنم!!!
    البته تو شبکه داخلی مشکلی نیست و با ارتباط tcp/ip به راحتی این کار انجام شدنیه، مشکل من تو بستر اینترنته که سرور، IP نرم افزار رو نمی تونه داشته باشه. نرم افزار ممکنه ساعت ها به سرور وصل باشه.
    خوشحال میشم کمکم کنید.
    ممنون



    یه موردی رو خوندم که خودمم تا حالا باهاش کار نکردم اما تمایل دارم یاد بگیرم. اونم node js هست

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



    این هم یه لینک که امیدوارم مفید باشه :
    http://nodejs.ir/blog/nowjs-tutorial
    آخرین ویرایش به وسیله رامین مرادی : دوشنبه 28 خرداد 1397 در 08:44 صبح دلیل: افزودن لینک

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

    نقل قول: ارتباط real time نرم افزار اندرویدی با سرور اینترنت

    یکی از روش هایی که میشه استفاده کرد و ساده‌تر هست و نیاز به تغییرات کمتری داره، Push to Sync هست. در این روش دریافت اطلاعات از سرور مثل قبل از طریق وب‌سرویس هست، اما بجای اینکه مثلن هر ۱۰ ثانیه سرور رو چک کنید (که علاوه بر مصرف بی‌دلیل نتورک و باتری گوشی، فشار بیشتری به سرور هم میاره)، سرور هنگام تغییرات یک Push Notification به دستگاه ارسال می‌کنه (قرار نیست Notification نمایش داده بشه) و به دستگاه میگه که اطلاعات جدیدی واست دارم و بیا خودت رو با من سینک کن، یا به عبارت ساده‌تر پس از دریافت پوش، همون وب سرویس که قبلن هر ۱۰ ثانیه صداش میزدید رو Call می‌کنید.

    این روش نیاز به بازنویسی کلی ارتباط با سرور نداره و خیلی سریع میشه راه‌اندازیش کرد، اما Realtime نیست (میزان تاخیر، برابر با زمان رسیدن پوش به دستگاه و دریافت پاسخ از وب سرویس هست، در تست من چیزی حدود ۳ ثانیه بوده).

    روش دیگه، همونطور که دوستان گفتن استفاده از ساکت (Socket) هست. البته از نظر من هیچ پیچیدگی خاصی از سمت کلاینت یا سرور نداره و اونطور نیست که خیلی سخت باشه.
    Socket.io یک کتابخانه جاوااسکریپت هست که باهاش می‌تونید بر روی NodeJS همون چیزی رو که لازم دارید پیاده سازی کنید. کتابخانه اندرویدش هم موجوده و خیلی ساده و سر راست هست.

    البته سمت سرور باید سازوکاری رو پیاده سازی کنید که از تغییرات در داده‌هایی که قراره کلاینت دریافت کنه مطلع بشید و اونها رو برای کلاینت بفرستید.

  5. #5
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: ارتباط real time نرم افزار اندرویدی با سرور اینترنت

    سلام
    من به سه زبان VB6 و C#‎ و Java برنامه های سوکتی برای تبادل نوشتم ولی از هم گیر دار تر Java ای هست خیلی هم تو نت بررسی کردم ولی خیلی نمونه پایدار پیدا نکردم ولی دوتا دیگه خیلی پایدار هستند اگر شما تجربه ای دارید ممنون می شوم راهنمائی کنید


    نقل قول نوشته شده توسط Nevercom مشاهده تاپیک
    یکی از روش هایی که میشه استفاده کرد و ساده‌تر هست و نیاز به تغییرات کمتری داره، Push to Sync هست. در این روش دریافت اطلاعات از سرور مثل قبل از طریق وب‌سرویس هست، اما بجای اینکه مثلن هر ۱۰ ثانیه سرور رو چک کنید (که علاوه بر مصرف بی‌دلیل نتورک و باتری گوشی، فشار بیشتری به سرور هم میاره)، سرور هنگام تغییرات یک Push Notification به دستگاه ارسال می‌کنه (قرار نیست Notification نمایش داده بشه) و به دستگاه میگه که اطلاعات جدیدی واست دارم و بیا خودت رو با من سینک کن، یا به عبارت ساده‌تر پس از دریافت پوش، همون وب سرویس که قبلن هر ۱۰ ثانیه صداش میزدید رو Call می‌کنید.

    این روش نیاز به بازنویسی کلی ارتباط با سرور نداره و خیلی سریع میشه راه‌اندازیش کرد، اما Realtime نیست (میزان تاخیر، برابر با زمان رسیدن پوش به دستگاه و دریافت پاسخ از وب سرویس هست، در تست من چیزی حدود ۳ ثانیه بوده).

    روش دیگه، همونطور که دوستان گفتن استفاده از ساکت (Socket) هست. البته از نظر من هیچ پیچیدگی خاصی از سمت کلاینت یا سرور نداره و اونطور نیست که خیلی سخت باشه.
    Socket.io یک کتابخانه جاوااسکریپت هست که باهاش می‌تونید بر روی NodeJS همون چیزی رو که لازم دارید پیاده سازی کنید. کتابخانه اندرویدش هم موجوده و خیلی ساده و سر راست هست.

    البته سمت سرور باید سازوکاری رو پیاده سازی کنید که از تغییرات در داده‌هایی که قراره کلاینت دریافت کنه مطلع بشید و اونها رو برای کلاینت بفرستید.

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

    نقل قول: ارتباط real time نرم افزار اندرویدی با سرور اینترنت

    خود Java کلاس Socket داره که راحت میشه ازش استفاده کرد. جستجو کنید نمونه کد زیادی پیدا می‌کنید، شاید این به دردتون بخوره: https://examples.javacodegeeks.com/a...ocket-example/

    من از کتابخانه Socket.io در اندروید استفاده کردم، چون سرور رو هم با Socket.io پیاده‌سازی کردم. این آموزش خوبی هست: https://socket.io/blog/native-socket-io-and-android/

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

  1. ارتباط نرم افزار اندروید با سرور
    نوشته شده توسط Mostafa_ در بخش Android Studio
    پاسخ: 16
    آخرین پست: پنج شنبه 18 شهریور 1395, 18:45 عصر
  2. پاسخ: 1
    آخرین پست: پنج شنبه 11 تیر 1394, 16:29 عصر
  3. ارتباط نرم افزار ها با یکدیگر
    نوشته شده توسط reza9025 در بخش C#‎‎
    پاسخ: 5
    آخرین پست: شنبه 24 آبان 1393, 14:20 عصر
  4. کمک در رابطه با ساخت نرم افزار تعاملی بین سرور
    نوشته شده توسط keyhan.taktaz در بخش Android Studio
    پاسخ: 2
    آخرین پست: پنج شنبه 19 دی 1392, 23:08 عصر
  5. ارتباط نرم افزار Dreamweaver با بانک SQL Server
    نوشته شده توسط hamidyha در بخش توسعه وب (Web Development)
    پاسخ: 7
    آخرین پست: چهارشنبه 19 اردیبهشت 1386, 10:51 صبح

برچسب های این تاپیک

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

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