Mostafa Mansour
Mostafa Mansour

@Mostafa__Man

9 تغريدة 21 قراءة Dec 01, 2021
ثريد عن أنواع الcommunication protocols بين الclient و الserver
Ajax Polling, HTTP Polling, WebSockets and Server-Sent Events
في كل HTTP request:
١- الclient بيفتح connection و يrequest data من السيرفر
٢- السيرفر بيprocess الrequest
٣- السيرفر بيبعت الresponse للكلاينت
فيه كذا طريقة نحقق بيها الخطوات دي و كل طريقة و ليها الuse case بتاعها
1- Ajax Polling
الpolling ده من أكتر الحاجات الcommon و الفكرة بتاعته straightforward
١- الكلاينت بيفتح connection و ي request data من خلال الbrowser
٢- الwebpage بتبعت request للسيرفر كل نص ثانية مثلا
٣- السيرفر بيcalculate الresponse و يبعته تاني عالbrowser
٤- و الكلاينت بيشوف الrendered response
٥- بعدين الكلاينت كل شوية يبعت request تاني
عيب الprotocol ده ان ممكن الكلاينت يبعت ريكوست و السيفرفر معندوش حاجة ف يرد ب empty response ف بالتالي بنستهلك من الserver resources عالفاضي
من ضمن الapplications هي الchat apps
2- HTTP Long-Polling
زي الajax polling بفرق ان الclient بيبعت الريكوست بس مبيستناش الresponse على طول .. لو السيفرفر معندوش data يرد بيها، بدل ما يرد ب empty response .. ممكن يخلي connection مفتوح لحد ما يجيله داتا أو يعدي الtimeout
3- WebSockets
ده بيبقى persistent connection بين الكلاينت و السيرفر .. يعني في أي وقت ممكن الكلاينت يبعت للسيرفر أو العكس .. ف البداية الكلاينت بيestablish handshake و لو السيرفر وافق، الاتنين ممكن يبعتوا data لبعض منغير overhead
دي بيبقى مشهور قوي للreal-time data زي لما بنراقب كابتن الأوبر و هو جاي أو في الonline games .. لما بنحتاج حاجة bi-directional
4- Server-Sent Events (SSEs)
ف البداية الكلاينت بيفتح connection برضه و بعدين السيرفر بيستعمل الconnection ده لو حابب يبعت داتا جديدة للكلاينت .. ده بيبقى حلو زي الnews feed في الفيسبوك أو تويتر

جاري تحميل الاقتراحات...