PDA

View Full Version : پیام رسان هایی مثل تلگرام برای چت متنی از چه روش و پروتکلی استفاده می کنند



mortex3000
جمعه 17 مهر 1394, 14:52 عصر
سلام دوستان میخواستم بدونم برنامه های پیام رسان بخصوص تلگرام از چه پروتکل هایی برای چت متنی شون استفاده می کنند
و به طور کلی بهتر است از چه روشی برای چت متنی که قابلیت ساپورت میلیون ها کاربر رو داشته باشه استفاده کرد؟
آیا روش هایی مثل gcm یا sip server جواب می دهند؟ اگر پروژه های open source در این زمینه میشناسید لطفا معرفی کنید
ممنون

gilas1368
جمعه 17 مهر 1394, 18:33 عصر
میتونید از وب سوکت و یا node.js برای انجام اینکار استفاده کنید

mortex3000
جمعه 17 مهر 1394, 23:53 عصر
میتونید از وب سوکت و یا node.js برای انجام اینکار استفاده کنید
من شنیدم این روش ها هم خیلی جواب گوی کاربران زیاد نیستند و به نوعی از long time polling استفاده می کنند و real time نیستند

ehsaun_kkt
دوشنبه 25 آبان 1394, 22:19 عصر
سلام دوستان میخواستم بدونم برنامه های پیام رسان بخصوص تلگرام از چه پروتکل هایی برای چت متنی شون استفاده می کنند



منم همین سوال رو دارم

negative60
سه شنبه 26 آبان 1394, 00:40 صبح
پروتکل تلگرام اختصاصيه (MTProto (https://core.telegram.org/mtproto)), ولی پروتکول واتس اپ و گوگل تاک خدا بيامرز XMPP هست البته برای ارسال صدا، ويدو، عکس ازHTTP استفاده ميکنه
به طور کلی برای ساپورت همزمان چندين هزار کاربر از کلاسترينگ تعداد زيادی سرور استفاده ميشه

djtrex
پنج شنبه 28 آبان 1394, 13:34 عصر
من شنیدم این روش ها هم خیلی جواب گوی کاربران زیاد نیستند و به نوعی از long time polling استفاده می کنند و real time نیستند

احتمالا اشتباه شنیدید چیزی که منظورشون بوده Comet بوده که long polling هست:
https://en.wikipedia.org/wiki/Comet_(programming)

وب سوکت که یک پروتکل انتقال اطلاعات هست یه کانکشن tcp باز در اختیارتون قرار میده که هم از سمت سرور و هم از سمت کلاینت میتونید به صورت real-time اطلاعات (چه متنی یا باینری) بفرستید.

XMPP یا Sip Over Websocket یا Soap Over Websocket یا MQTT که فیسبوک استفاده میکنه یا WAMP که pusher و pubnub استفاده می کنند و ... می تونند به عنوان sub-protocol وب سوکت کار کنند. یعنی دیتا طبق این زیر پروتکل ها منتقل میشه
لیست زیرپروتکل های تایید شده:
https://www.iana.org/assignments/websocket/websocket.xml

------------
در مورد ترافیک زیاد اگه کانفیگ سرور(ها) و معماری برنامه درست طراحی و پیاده بشه و ترافیک به درستی بالانس بشه بین پروسه ها/سرورها/دیتاسنترها (Horizontal Scaling) شما میتونید چندین میلیون کاربر همزمان رو بدون هیچ مشکلی مدیریت کنید.