WebSocket یه پروتکل وبه که امکان ارسال پیام دو طرفه بین کلاینت و سرور رو میده.
توی HTTP :
- درخواست یه http.request از کلاینت به سرور ارسال میشه
- سرور یه کانکشن باز میکنه و اطلاعات لازمه رو توی scope اون سشن مینویسه
- پاسخ http.response را به کلاینت ارسال میکنه
- و کانکشن رو میبنده
اما توی وب سوکت فرق داره
- کلاینت یه درخواست میفرسته و اطلاعات scope رو سمت سرور ارسال میکنه
- سرور یه ایونت chat.recieved_message اجرا میکنه و میتونه جواب بده و اگر جواب بده ایونت chat.send_message رو اجرا کرده
- هر کدوم از اونها میتونن کانکشن رو ببندن

آیا Websocket ها Synchronous هستن یا Asynchronous؟
وب سوکت به همزمانی یا ناهمزمانی ربطی نداره و میتونه هردوش باشه. وب سوکت فقط یک پروتکل وب هست.