WebSocket

WebSocket یک کانال ارتباطی کاملا دوطرفه رو فراهم میکنه و این یعنی اینکه سرور و کلاینت هردو به صورت همزمان و فقط با یک کانکشن TCP با هم ارتباط برقرار میکنن و دیتا ردوبدل میکنن و با استفاده از اون کلاینت دیگه مجبور به ریلود کردن صفحه برای دیدن تغییرات مختلف نیست. WebSocket به تسهیل جریان کانکشن های داینامیک کمک میکنه و این باعث به وجود اومدن یه ارتباط در هر دو طرف با سرعت های چشمگیری میشه و این یعنی اینکه شماتنها با استفاده از یک کانکشن میتونید اطلاعات مختلف ارسال و دریافت کنید.

یک سرور میتونه یک کلاینت رو به صورت real-time به دلیل نبودن تاخیر در کانکشن تنظیم کنه و یک کلاینت میتونه به صورت پی در پی دیتای مختلف با سرور در اشتراک بگذاره:

Duplex tunnel between client and server with WebSocket connection

یک کانکشن WebSocket به کمک چیزی به اسم WebSocket handshake ایجاد میشه. این پروسه با فرستاده شدن یک درخواست معمولی HTTP از طرف کلاینت به سرور شروع میشه. توی این درخواست یه سری اطلاعات فرستاده میشه که به سرور اطلاع میده که کلاینت میخواد یه کانکشن WebSocket ایجاد بشه. اگه سرور از WebSocket پشتیبانی کنه و روش راه اندازی شده باشه، اون درخواست رو قبول میکنه. وقتی که پروسه handshake کامل شد، کانکشن اولیه HTTP با یک کانکشن WebSocket جایگزین میشه. این کانکشن هم همون نوع TCP/IP که HTTP استفاده میکنه رو به کار میگیره. حالا بک اند و فرانت اند میتونن شروع به ردوبدل کردن دیتا کنن.