تا پایان امشب - بیشترین تخفیف تا امروز (%۷۰ و %۸۷) ویژه حمایت از دانشجویان‌ و کسب‌وکارهای آسیب‌دیده جزئیات

Socket.IO چیست؟ کاربرد ها و مزایای آن!


Socket.IO چیست؟ کاربرد ها و مزایای آن!

شروع کار با کتابخانه Socket.IO

Socket.IO در واقع یکی از کتابخانه های جاوا اسکریپت است که یک ارتباط دو طرفه (رفت و برگشتی) بین کلاینت و سرور برقرار می کند و از دو قسمت تشکیل می شود! کتابخانه سمت کلاینت که در مرورگر اجرا شده و دیگری ، کتابخانه سمت سرور بر پایه Node.js است که دارای یک API برای ارتباط با یکدیگر هستند.

اهمیت Socket.IO در وب اپلیکیشن ها:

ارائه فید بک های به موقع در وب اپلیکیشن های شما اهمیت زیادی دارد. همه چیز با معرفی  XMLHttpRequest توسط مایکروسافت شروع شد و بعد به چیزی تبدیل شد که با نام Ajax می شناسیمش! سرویس long-poll در Socket.IO استاندارد ترین روش جهت تحویل داده های سرور برای برنامه می باشد ، اما بهترین راه حل نیست! این روش شامل فرستادن درخواست های HTTP برای داده است که باعث بار اضافی برای سرور و تاخیر در سرعت کار آن می شود.

IETF سرویس WebSocket را در سال 2011 استاندارد نمود و روشی برای برنامه نویسان در تحویل و ارسال داده از طریق TCP ارائه کرد. تمامی مرور گر های اصلی، پشتیبانی خود را از این استاندارد اعلام کرده و توسه دهنده ها نیز  آن را در برنامه هایشان استفاده کردند.

Sokcet.IO لایه ای دو طرفه با محوریت رخداد(Event) می باشد که برای وب اپلیکیشن های بالاتر از Engine.IO ساخته شده است. این لایه تمامی سرویس های Polling در Ajax و Websocket را در یک API قرار داده است که به برنامه نویسان اجازه می دهد تا بدون نگرانی از مطابقت با مرور گر ، داده های خود را ارسال و دریافت کنند.

اولین ارائه ی جامع

Socket.IO در 8 ماه May سال 2014 نسخه ی 1.0 خود را ارائه نمود. این پروژه شامل دو بخش قبل از ورژن 1.0 بود. یکی پیاده سازی انتقال و دیگری API های سطح بالا. بخش اول به پروژه ای دیگر منتقل شده است که Engine.io نام دارد که به برنامه نویس اجازه می دهد تا API  هایی جدید برای برنامه های تحت وب بدون ایجاد چرخه ای جدید بسازد.

به غیر از تغییرات ساختاری و معماری ، Socket.IO  تغییرات زیادی در نمای کاربری دارد.

  • پشتیبانی از استریم کردن باینری
  • پشتیبانی بهتر برای مقیاس بندی افقی
  • حذف پیام های خطایابی متعدد در کنسول به شکل پیش فرض
  • پشتیبانی JS از طریق ماژول Socket.io-stream

در این مقاله نگاهی سریع به این که چگونه می توان  برای ارسال و تحویل داده در زمان اجرا از Socket.io  استفاده نمود خواهیم انداخت!

شروع کار 

Socket.IO هم بخش های سروری و هم بخش های کلاینتی دارد که API  های مشابهی دارند.

  • سمت سرور

در سمت سرور ، Socket.IO با اضافه نمودن Event Listener ها به http.Server کار می کند. Sokcet .io از نمونه http.server پشتیبانی می کند! می توانید بنویسید :

Socket.IO چیست؟ کاربرد ها و مزایای آن!

با این انعطاف پذیری بالا , می توان به راحتی یک سرور Sockcet.IO را به سایر چارچوب های HTTP متصل نمود. برای مثال می توان از دستور زیر برای استفاده از Socket.IO  بهره برد:

Socket.IO چیست؟ کاربرد ها و مزایای آن!

حتی می توان از Socket.IO در Hapi استفاده نمود:

Socket.IO چیست؟ کاربرد ها و مزایای آن!

Socket.IO با چارچوب هایی که فرمان http.Server خود را نشان دهند همخوانی خواهد داشت و قابل اجرا است. جهت اطمینان به مستندات مراجعه کنید.

سمت کلاینت

سرور Http در کتابخانه ی /Socket.io/socket.io.js شروع به سرویس دهی به کلاینت می کند. برای اتصال به سرور Socket.IO  ما باید دو خط زیر را در تگ body قرار دهیم:

Socket.IO چیست؟ کاربرد ها و مزایای آن!

متغیر سراسری Socket یک شئ EventEmitter  است. می توانیم یک Listener را وقتی به سرور متصل شدیم به شکل زیر به Attach کنیم:

Socket.IO چیست؟ کاربرد ها و مزایای آن!

ارسال و دریافت شئ

از آن جایی که هم Socket سرور و هم Socket کلاینت به شکل EventEmitter فعالیت می کنند می توانید رخداد ها را به صورت دو طرفه ایجاد و یا به آن ها گوش دهید (Listen). برای مثال یک “tweet” در سرورقرار دهید و آن را در سمت کلاینت دریافت کنید:

Socket.IO چیست؟ کاربرد ها و مزایای آن!

برای استفاده داده ها در مرورگر باید رخداد “tweet” را دریافت کنیم :

Socket.IO چیست؟ کاربرد ها و مزایای آن!

می توانیم هر نوع شئ Json را به سرور ارسال و از آن دریافت کنیم. این ها شامل اعداد و String ها، آرایه ها و بولین ها (Boolean Variable) می شوند. حتی می توان Node.JS را در Socket.io 1.0  ارسال و دریافت نمود.

  • پیشنهاد دوره : چنانچه تمایل دارید Node.JS را بیاموزید، می توانید دوره ویدیویی آن را از اینجا دریافت کنید!

اگر بخواهیم “tweet” هایی را از مرور گر به سرور ارسال کنیم و آن ها را در سرور استفاده نماییم، باید بدین شکل عمل کنیم:

Socket.IO چیست؟ کاربرد ها و مزایای آن!

در کدهای سمت کلاینت، ما می توانیم “tweet” ها را به شکل زیر به سرور ارسال کنیم:

Socket.IO چیست؟ کاربرد ها و مزایای آن!

همانطور که می بینید، سرور و کلاینت دارای رفتاری مشابه در Socket.IO  هستند.

استریم داده ها

علاوه بر ارسال شی JSON می توان یک سری استریم خواندنی (Readable Stream) برای مرورگر از سرور ارسال کرد. اگر بخواهیم محتوای اسکریپت سمت سرور را بفرستیم باید به شکل زیر عمل کنیم:

Socket.IO چیست؟ کاربرد ها و مزایای آن!

برای استفاده هر بخش از داده ها در مرورگر، ما می توانیم گوش کنیم به رخداد “data” در شئ ای که نتیجه داخل آن است :

Socket.IO چیست؟ کاربرد ها و مزایای آن!

نتیجه گیری:

Socket.IO نقش مهمی در استفاده از NODE.JS دارد که Websocket ها را محبوب تر و در دسترس تر می کند. نسخه ی 1.0 قدمی مهم در تکامل و توسعه ی Engine.IO بود و باعث شد تا امکانات جالبی در زمینه ی Engine.IO برای برنامه نویس ها ایجاد شود. ما فقط بخشی از ویژگی های Socket.IO را در این مقاله مورد بررسی قرار دادیم و به صورت مختصر با کدنویسی آن آشنا شدیم! توصیه می کنیم دوستان علاقه مند، Socket.IO را در دستور کار یادگیری خود قرار دهند و در کنار آموزش های لرن فایلز در این زمینه، از مرجع زیر بهره مند شوند :

یادگیری Socket با مستندات سایت Socket.IO (لطفاً با فیلتر شکن اقدام کنید!)

نظرات کاربران

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نوشته های دیگر در دسته بندی مقالات آموزشی

ایندکس مطالب با سرعتی باور نکردنی

ایندکس مطالب با سرعتی باور نکردنی

آموزش سرعت بخشیدن به ایندکس شدن مطالب در کوتاه ترین زمان
10سوال برتر وب سایت کورا

10سوال برتر وب سایت کورا

معرفی 10 سوال برتر برنامه نویسی از وب سایت محبوب و مطرح کورا (Quora)
بهترین فریم ورک های PHP در سال ۲۰۱۸

بهترین فریم ورک های PHP در سال ۲۰۱۸

معرفی بهترین و پر طرفدار ترین فریم ورک های زبان برنامه نویسی PHP
آموزش هک

آموزش هک