ورود

View Full Version : سوال در مورد برنامه هایی مثل وایبر و واتس آپ



sonicuser
چهارشنبه 19 فروردین 1394, 15:13 عصر
سلام
برنامه هایی مثل وایبر و واتس آپ که به محض اینکه پیام میاد به شما هشدار میدم ، چطور کار میکنن یعنی از کجا به محض اینکه پیام جدید میاد میفهمند (سرور به اونا چطوری اطلاع میده) یا اینکه خودشون هر ثانیه سرور رو برای گرفتن پیام جدید چک میکنند؟؟:متفکر:

h_a_m_i_d
چهارشنبه 19 فروردین 1394, 15:21 عصر
سلام
برنامه هایی مثل وایبر و واتس آپ که به محض اینکه پیام میاد به شما هشدار میدم ، چطور کار میکنن یعنی از کجا به محض اینکه پیام جدید میاد میفهمند (سرور به اونا چطوری اطلاع میده) یا اینکه خودشون هر ثانیه سرور رو برای گرفتن پیام جدید چک میکنند؟؟:متفکر:
طبق اطلاعاتی که من دارم اطلاعات اصلا به سرور نمیروند شما وقتی متصل به اینترنت باشید یک آی پی خاص دارید و گوشی مقابل هم همچنین تنها اطلاعات مربوط به ای پی ها در سرور ذخیره میشود

Mostefea1372
چهارشنبه 19 فروردین 1394, 15:52 عصر
سلام اطلاعات شما از کجاست نمی دونم که با این قاطعیت بیان می کنید .... ولی تا جایی که من می دونم اطلاعات از سمت فرستنده میاد روی سرور و سرور هم برای فرد یا( افراد) مورد نظر می فرستهاگه اطلاعات روی سرور نمی ره پس دیگه واتس اپ چرا باید سرور های آنچنانی بگیره (شاید برای رد گم کنی (; ) ...

sonicuser
چهارشنبه 19 فروردین 1394, 16:15 عصر
سلام اطلاعات شما از کجاست نمی دونم که با این قاطعیت بیان می کنید .... ولی تا جایی که من می دونم اطلاعات از سمت فرستنده میاد روی سرور و سرور هم برای فرد یا( افراد) مورد نظر می فرستهاگه اطلاعات روی سرور نمی ره پس دیگه واتس اپ چرا باید سرور های آنچنانی بگیره (شاید برای رد گم کنی (; ) ...

خب الان مشکل اینجاست که سرور چطوری به اون فرد خاص میفرسته؟؟؟
من فکر میکنم که خود نرم افزار در بکگراند هر لحظه چک میکنه که چی جدید اومده درسته؟؟

hamid_hr
چهارشنبه 19 فروردین 1394, 16:18 عصر
من دنبال همچین چیزی بودم
فهمیدم یه مبحث هست به نام SignalR
برا اینه که کانکشن بین سرور و کلاینت به صورت اتصال باز باشه
خیلی راحت میشه باهاش بین سرور و کلاینت ارتباط برقرار کرد
http://ably.ir/post/tutorial%20SignalR%20part10
توی این لینک استفاده از این کتابخانه رو در asp.net‌گفته
برا جاوا هم میشه ازش استفاده کرد
فقط یکم سرچ لازمه

اینم درباره SignalR
http://javabyab.com/5515/signalr-%DA%86%DB%8C%D8%B3%D8%AA%D8%9F

tah_206207
پنج شنبه 20 فروردین 1394, 02:12 صبح
حدسم اینه که از قابلیتی به نام push notification استفاده می کنه و به محض اینکه پیامی از سمت فرستنده ارسال میشه با استفاده از قابلیت push notification اونو به گیرنده اطلاع میده در این روش دیگه لازم نیس هی سرور برای پیام جدید بررسی بشه یا اینکه ارتباط بین کلاینت و سرور باز باشه.

dalmif
پنج شنبه 20 فروردین 1394, 09:15 صبح
من چنین تایپیکی زده بودم که در جواب فهمیدم که همیشه سرور کاربر به هم متصل هستند بخاطر اینکه که وقتی روی یک فرد کلیک میکنی بالاش نوشته آنلاین و این نشون دهنده اینه که فرد الان به سرور متصله و اگه اینطور باشه که بخواهد هر ثانیه چک کنه دیکه معلوم نمیشه 1 ثانیه آنلاین و ثانیه بعد آفلاینه

keyhan.taktaz
پنج شنبه 20 فروردین 1394, 09:41 صبح
دوستان دقت داشته باشید سرور به موبایل نمیفرسته.موبایل از سرور میگیره!
الان آیپی که ما داریم تو اینرنت آی پی مودم(روتر) هست و نمیشه کسی از بیرون از LAN باهامون در ارتباط باشه.نمیخوام زیاد وارد جزئیات بشم ولی در کل موبایل از سرور میگیره

alireza_s_84
پنج شنبه 20 فروردین 1394, 09:45 صبح
سلام خدمت همه دوستان
ابتدای امر عرض کنم اگر شما یکبار برنامه ای در زمینه سوکت پروگرمینگ نوشته بودین یا اطلاعات کمی در این زمینه داشتین به راههای غیرممکن یا راههای غیرمنطقی فکر نمیکردین.
پایه ی برنامه های چت و یا در کل برنامه هایی که بر مبنای ارسال و اطلاعات کلاینت/سرور پایه ریزی شدن این هست که یک برنامه به عنوان سرور بر روی پورت خاصی (پورتی که خود برنامه نویس تعیین میکنه) شروع به گوش کردن برای درخواست های اتصال میکنه و به محض درخواست اتصال این درخواست رو پردازش و طبق هدف برنامه نویس با اون برخورد میکنه. به این نحوه تعامل معمولا سوکت گفته میشه.
از طرف دیگه کلاینت که یک برنامه هست از طریق همون پورت به برنامه سرور درخواست اتصال و دریافت خدمات میده.
چیزی که مهمه این هست که تا زمانیکه اتصال صراحتا توسط برنامه نویس بسته نشه و یا به دلایل مشخصی مثل قطعی ارتباط (کندی سرعت ، گم شدن بسته ها ، قطعی اینترنت و ...) هیچوقت اتصال قطع نمیشه و کلاینت همیشه به سرور متصل هست.
حالا توی برنامه هایی مثل وایبر یا واتس آپ ، برنامه هایی که روی دیوایس ها قرار دارن همون کلاینت ها و سرور اصلی هم میزبان برنامه سرویس دهنده است که ممکنه با زبانی مثل ++C یا #C و یا هر زبان دیگه ای نوشته شده باشه.
روند آگاه کردن کاربران اینطوز هست وقتی کلاینتی کانکت شد و احراز هویت صورت گرفت لیست دوستانش واکشی و پیامی مبنی بر آنلاین شدن کاربر برودکست میشه ، حالا هرکدوم از دوستان این کلاینت که کانکت باشن پیام ارسالی رو دریافت میکنن.
نکته مهم اینه که اتصال کلاینت و سرور همیشه برقراره و در صورتیکه کلاینت وصل نباشه به محض اتصال پیامها واکشی و برای اون ارسال میشه.
برای اطلاعات بیشتر میتونید در مورد برنامه نویسی سوکت ، سوکت پراگرمینگ و برنامه نویسی شبکه جستجو کنید.
یکی از دوستان به SignalR اشاره کرده بودن که باید یادآوری کنم این تکنولوژی هم برمبنای سوکتها کار میکنه و از روالی که توضیح دادم بهره میبره.

hamid_hr
پنج شنبه 20 فروردین 1394, 10:32 صبح
یکی از دوستان به SignalR اشاره کرده بودن که باید یادآوری کنم این تکنولوژی هم برمبنای سوکتها کار میکنه و از روالی که توضیح دادم بهره میبره.
خب عزیزم منم میدونم اینم از همون سوکت پروگرمینگ بهره میبره ولی یه کتابخانه اماده هست که دیگه نمیخواد خیلی درگیر سوکت و مشکلاتش بشین
با این کتابخانه با یه دستور میتونین به همه کلاینتای ان لاین پیغام بفرستین
گروه بندی کنین کلاینتا رو
یوزر و پسورد بدین بهشون
و..........

tux-world
پنج شنبه 20 فروردین 1394, 10:47 صبح
شما هم میتونین مثل من از nodejs و فریم ورکهای express.io و socket.io استفاده کنید. کار راحتی نیست دردسرهای خودش رو داره ولی کار باهاش لذت بخشه. الان هم یه نرم افزار اندرویدی قشنگ باهاش نوشتم که یه چند هفته دیگه انتشار میدم