وب سوکت WebSocket چیست ؟

وب سوکت WebSocket چیست ؟

حتما تابحال شماهم از نسخه های تحت وب پیام رسان های معروف مانند تلگرام  ویا واتساپ استفاده کرده اید . آِیا تابحال به این نکته توجه داشتید که چرا سرعت ارسال و دریافت پیام (بدون در نظر گرفتن سرعت اینترنت شخصی) در این پیام رسان های تحت وب بالا است ، حال آنکه در برخی از پیام رسان های شخصی که برای برخی از شرکت ها طراحی میشوند ،سرعت ارسال و دریافت پیام پایین است . یکی از علت های این امر میتواند ، عدم استفاده از فناوری WebSocket باشد. دراین مقاله از همیارکد قصد بر ارایه مطالب مفیدی در این خصوص داریم ، همراه ما باشید .

وب سوکت چیست ؟

تا پیش از اینکه WebSocket پا به عرصه بگذارد ، تمامی ارتباطات میان کاربران و سرور تنها بر عهده HTTP بود. با عرضه شدن این تکنولوژِی ، داده های داینامیک شده به راحتی میتوانند بین اتصالات وب سوکتی که بسیار سریع هستند ، جریان پیدا کنند . WebSocket  برخلاف روش هایی که قبل از آن وجود داشت،  پروتکلی بر مبنای TCP است که کاملا متمایز از HTTP میباشد. به کمک وب سوکت میتوان ارتباط دایمی و دوطرفه را تنها از طریق یک تک پورت TCP میان کاربر و سرور ایجاد کرد . این ارتباط دو طرفه باعث میشود تا سرور بدون دریافت درخواست از کاربر ، اطلاعات را برای آن ارسال کند که در نتیجه باعث افزایش سرعت ارتباط میشود . اینکه وب سوکت تنها از طریق یک تک پورت TCP ارتباط برقرار میکند ، باعث میشود تا بار اضافی حاصل از ارتباط TCP ، کاهش پیدا کند .از طرف دیگر به خاطر اینکه سرور بدون انتظار برای دریافت درخواست از سوی کاربر، میتواند اطلاعات را برای آن ارسال کند ، ترافیک اضافی و غیر ضرورری که در اثر ارتباط مرورگر و سرور در HTTP اتفاق میافتد را به مقدار قابل توجهی کاهش میدهد.

WebSocket تحولی نوین در بهبود عملکرد اپلیکیشن های تحت وبی که نیاز به ارتباط لحظه ای (real-time) داشتند ، ایجاد کرد.مانند بازی های آنلاین چندکاربره ، سیستم های چت آنلاین و ... . فشارتقاضا برای ایجاد اپلیکیشن‌هایی که بصورت هم زمان تعامل برقرار کنند از اثرات حضور وب سوکت است. راه حل هایی مثل AJAX و COMET برای اجرا روی HTTP و تقلید تعامل در همان زمان وجود دارند؛ ولی متاسفانه این تکنولوژی‌ها از HTTP به صورتی استفاده می‌کنند که اصلا برای آن طراحی نشده است و باعث ایجاد سربار می‌شود. برخلاف صفحات وب استاتیک، اجرای اپلیکیشن‌های وب داینامیک که قدرت نفوذ در HTTP را دارند بسیار هزینه‌بر است. با کمک وب سوکت، بسیار در منابع سروری صرفه جویی می‌شود. مثال‌های بسیار زیادی از اپلیکیشن‌های متکی به HTTP وجود دارد که برای اجرا شدن به صدها سرور نیاز داشتند ولی با متصل شدن به وب سوکت به دو یا سه سرور نیاز دارند.

مشکلاتی که باعث ایجاد وب سوکت شد

- استفاده از ارتباطات TCP بصورت جداگانه برای هر درخواست

- تبادل هدرهای غیرضروری HTTP میان کاربر و سرور به ازای هر پیام ارسالی

- عدم دسترسی به دیتا بصورت real-time و ایجاد تاخیر از سوی کاربر نهایی

این مشکلات که سبب ایجاد تجربه‌ی کاربری نامطلوب و نارضایتی کاربران در کار با وب شده بودند، باعث شد تا ایده‌هایی مبنی‌بر ایجاد ارتباطی دایمی میان سرور و کاربر، شکل گیرند. ایده‌های مطرح‌شده یا کاملن مبتنی‌بر HTTP بوده و بازهم نمی‌توانستند سربار حاصل از ارتباطات HTTP را کاهش دهند هم‌چون AJAX، یا تنها قابلیت اجرا در یک سمت ارتباط هم‌چون ایجاد ارتباطی دایمی تنها میان سرورها (و نه سرور و مرورگر) را داشتند، مانند  Webhooks. در نتیجه هیچ‌یک از این روش‌ها نتوانستند آن‌گونه که باید پاسخ‌گوی حل این مشکلات باشند.

شما همراهان عزیز همیارکد میتوانید نظرات و پرسش های خود را از طریق کامنت با همیارکد به اشتراک بگذارید

آموزش طراحی سایت