آموزش Socket.IO ارتباط بلادرنگ مثل آب خوردن!

آموزش پروژه محور Socket IO یودمی ایران

آماده شوید برای یک سفر عملی به سوی تبدیل شدن به یک توسعه‌دهنده حرفه‌ای Socket IO! این برنامه درسی جامع همه چیزهایی را که نیاز دارید پوشش می‌دهد، از مبانی و اصول پایه Socket IO تا مباحث پیشرفته و پروژه‌های واقعی. از مبتدی تا حرفه‌ای، این دوره شما را در مسیری برای تسلط بر Socket IO، استاندارد صنعتی برای ارتباطات بلادرنگ، هدایت می‌کند. برای اینکه مطمئن شوید این بسته در ماژول های node شما گنجانده شده است، باید آن را به صورت محلی نصب و سپس آن را در سرور خود فراخوانی کنید. در پوشه public، یک فایل جدید به نام index.html ایجاد کنید.

دستور بالا به این معنی است که نسخه مشخص شده express را نصب کنید. ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی می‌نویسم. اگر دوست دارید CI/CD را از ابتدا یاد بگیرید، من یک آموزش دیگر دارم که ممکن است دوست داشته باشید. Node.js را از لیست انتخاب کنید زیرا برنامه ما در Node.js نوشته شده است. چیزی که سپس خواهید دید یک پیکربندی پیش فرض yaml برای برنامه Node.js شما است.

ما از تگ blockqoute در HTML5 برای نمایش نقل قول استفاده می کنیم. هرچند کد زیر گویا است ولی هرجا لازم بوده، توضیحات را آورده ایم. در طول دوره، برنامه‌های وب بلادرنگی می‌سازید و یاد می‌گیرید که چگونه از Socket IO برای ایجاد تجربیات پویا و تعاملی استفاده کنید. بخندید کتاب بخونید و خوب باشید تا جامعه مون به آرامش برسه. برای کمک به سایت ما و گسترش آموزش در بین هموطنان، در سایتها، وبلاگ ها و شبکه های اجتماعی لینک سایت ما را درج کنید.

سروری که برای این کار مورد نیاز است از نود جی اس، اکسپرس جی اس و سوکت استفاده می کند. سرور رویدادی را که از سمت ادمین صادر شده به همراه نقل قول دریافت می کند و یک رویداد همراه با نقل قول مذکور سمت فایل index می فرستد. هنگامی که یک کاربر متصل می‌شود، این اتصال، eventیی را اجرا می‌کند که شامل اطلاعاتی در رابطه با نام‌کاربری آن‌ها می‌شود. باید userId را در سوکت، تنظیم کنید، این مورد به هنگام پایان اتصال کاربر مورد نیاز خواهد بود. برای انجام آن نیاز است که نام‌کاربری را به یک Set که شامل نام‌کاربری کاربران فعال است، اضافه کنید و در آخر event را به همراه لیستی از کاربران فعال، صدا بزنید.

در این آموزش، بیایید نحوه استفاده از Socket.IO و Node.js و ایجاد یک برنامه چت ساده را بیاموزیم. ما یک برنامه اصلی Node.js را راه اندازی می کنیم و وابستگی های لازم را نصب می کنیم. با رابط چت اولیه و اضافه کردن یک ویژگی ساده که در آن کاربران به راحتی می توانند با کمک اتصال Socket.IO پیام ارسال و دریافت کنند. Socket.io یک کتابخانه پرکاربرد است که به ارتباط بلادرنگ بین سرویس گیرندگان وب و سرورها کمک می کند. در نهایت یک تست ساده با فریم ورک Mocha می نویسیم و از طریق Harness CI آن را خودکار می کنیم. امانوئل هنری نشان می دهد که چگونه با Express و Socket.IO یک سرور ایجاد کنید، HTML جلویی خود را کدنویسی کنید، و یک چت با تابع emit ایجاد کنید.

به همین ترتیب با استفاده از دستور زیر Socke.IO را نصب می کنیم. با حساب GitHub خود احراز هویت کنید زیرا کد برنامه شما در آنجا موجود است. در اینجا اطلاعیه‌ها، نسخه‌ها و تغییرات جدید لیارا فهرست می‌شوند. وب‌سوکت‌ها یکی از جالب‌ترین api‌هایی هستند که تا به حال به اینترنت راه یافته‌اند. ما به تئوری پشت Socket IO نیز می‌پردازیم و توضیح می‌دهیم که چرا کارها به روش خاصی انجام می‌شوند تا شما درک عمیق‌تری از موضوع پیدا کنید.

از اینکه تا اینجا با ما همراه بودید، از شما بسیار سپاسگزاریم. توجه داشته باشید که نام رویداد می تواند هر نام دلخواهی باشد که می خواهید به آن نام صدا بزنید. در واقع این تمام چیزی است که برای بارگیری socket.io-client لازم است که در آن یک io global ارائه و سپس وصل می شود. Socket.io یک بسته مخصوص Node نیست، بنابراین باید آن را خودتان نصب کنید.

استفاده از WebSockets در کنار نکات بهینه‌سازی و امنیتی، به بهبود عملکرد سایت و تجربه کاربری کمک می‌کند و تأثیر مثبتی بر سئو سایت خواهد داشت. امیدوارم این مقاله درک بهتری از socket.io و نحوه استفاده از آن در پروژه های مختلف به شما داده باشد. این تکنولوژی به خصوص برای برنامه‌های بلادرنگ مانند چت‌های آنلاین، بازی‌های چندنفره، برنامه‌های مالی و داشبوردهای زنده کاربرد دارد. در این مقاله به بررسی اصول کار با WebSockets، نحوه پیاده‌سازی آن و نکات بهینه‌سازی و سئو بر اساس استانداردهای گوگل می‌پردازیم. به کمک این اپلیکیشن، ابتدا در صفحه css-admin-color.html رنگی انتخاب می شود و بلافاصله رنگ زمینه تگ های پاراگراف در css-color.html تغییر خواهد کرد.

او علاقه زیادی به افزایش دانش خود در مورد IOT و محصولات پوشیدنی با هدف آموزش فناوری های پیشرفته و همکاری برای جان بخشیدن به محصولات جدید دارد. توجه داشته باشید که من یک نمونه جدید از socket.io را از طریق ارسال به سرور هدف (سرورHTTP ) مقدار دهی اولیه می کنم. سپس از رویداد اتصال به سوکت های ورودی فرمان می دهم و آن را وارد کنسول می کنم. با Node، از نظر فنی، می‌توانیم سرور وب اصلی خود را از ابتدا کدنویسی کنیم. معمولاً این کار از طریق یک بسته فوق العاده معروف به نام express انجام می شود. Sockets (سوکت ها) یک حالت انتزاعی و کوچک تر از یک شبکه هستند که کار کردن و مدیریت آن ها راحت تر ست.

در این مقاله، ما یک برنامه چت اولیه ایجاد خواهیم کرد که به کاربران این امکان را می دهد تا هم زمان با یکدیگر صحبت کنند. سایت آموزش مهر کدر ، مکانی است که شما می‌توانید به دنیای جدیدی از دانش و مهارت‌ها با گستره‌ای وسیع در زمینه برنامه‌نویسی و توسعه نرم‌افزار وارد شوید. این سایت با هدف آموزش و ارتقاء دانش افرادی که به یادگیری برنامه‌نویسی علاقه‌مند هستند یا قصد دارند مهارت‌های خود را تقویت کنند، تاسیس شده است. در این بخش، با استفاده از API WebSocket در جاوا اسکریپت، نحوه ایجاد یک ارتباط بلادرنگ را در مرورگر مرور می‌کنیم. WebSocket یک پروتکل ارتباطی بلادرنگ است که ارتباط مداوم و دوطرفه (Full-Duplex) بین مرورگر و سرور را ممکن می‌سازد. این پروتکل به جای اینکه هر بار برای تبادل داده‌ها یک درخواست و پاسخ HTTP ارسال کند، یک کانال ارتباطی دائمی بین کلاینت و سرور ایجاد می‌کند.

در این مقاله خلاصه‌ای از مقایسه میان این دو را مطالعه خواهید کرد. اما تصمیم گرفتیم که در این مقاله بر روی WebSocketها تمرکز کنیم. به این دلیل این مقاله آموزش Socket.io برای ساخت یک برنامه چت real-time است. این دوره مملو از پروژه‌های عملی و مثال‌های عملی است تا اطمینان حاصل شود که تجربه‌ای در دنیای واقعی کسب می‌کنید. در پایان دوره، شما برنامه‌های بلادرنگ کاملاً کاربردی خواهید ساخت و اعتماد به نفس برای ایجاد برنامه‌های کاربردی خود را از ابتدا ایجاد خواهید کرد.

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

ابتدا با ایجاد پوشه public به همراه فایل‌های index.html و main.js، این کار را شروع می‌کنیم. اگر نیاز داشته باشید، می‌توانید فایل style.css را نیز ایجاد کنید. یک مهندس نرم افزار ارشد با بیش از 7 سال تجربه برنامه نویسی در Node js ، Express js ، React Js ، Redux ، Javascript ، MongoDB/Mongoose برای ایجاد برنامه های بزرگ تجاری برای شرکت ها. شروع یادگیری چیز جدیدی می تواند چالش برانگیز باشد و منابع بسیار زیادی در دسترس است که می تواند بسیار زیاد باشد. به همین دلیل ، من از تمام مهارت هایی که دارم برای ایجاد پروژه های با کیفیت بالا استفاده می کنم که ارزش واقعی را به نمونه کارهای دانش آموزان اضافه می کند و شغل آنها را در توسعه وب شروع می کند. دوباره node index.js، را اجرا کنید، اگر از قبل در حال اجرا است، پروسه را با فشار دادن control + c مجددا راه اندازی کرده و دوباره node index.js را اجرا کنید.

اگر شماره نسخه را می بینید، که هیچ والا روی لینک (نصب نود جی اس و npm) کلیک کنید. وب سوکتها به ما امکان برقراری ارتباط دو سویه کانالهای ارتباطی موجود را بین دو ماشین بصورت بلادرنگ (Real-time) برقرار می کنند. آنها به مرورگر امکان ارتباط بلادرنگ را می دهند و یکی از آخرین شکاف ها را در ارتباطات انسانی و مبتنی بر وب پر می کنند. این دوره جامع شامل Socket IO با NodeJS و Python، دو زبان برنامه‌نویسی قدرتمند و محبوب است. برای بهبود مقیاس‌پذیری، باید تعداد زیادی از اتصالات همزمان را مدیریت کنید.

زمانی که شما به یادگیری اختصاص دادید برای ما اهمیت بسیار بالایی داره و به همین دلیل سعی میکنیم متحوای تولید شده، غنی، پر بار و در راستای نیاز های بازار کار باشه. این کد یک شنونده رویداد برای رویداد پیام اضافه می کند که وقتی کاربر روی دکمه ارسال کلیک می کند توسط مشتری منتشر می شود. سرور پیام را در کنسول ثبت می کند و سپس یک رویداد پیام را با استفاده از متد io.emit () برای همه مشتریان متصل ارسال می کند. همیشه باید از ارتباط‌های امن استفاده کنید، مخصوصاً زمانی که داده‌های حساس بین کلاینت و سرور رد و بدل می‌شوند. برای ایجاد یک ارتباط امن WebSocket، از WSS به جای WS استفاده کنید.

همان طور که در console سرور مشاهده می کنید عبارت “Connected succesfully to the socket” لاگ گرفته شده است. اکنون باید امکان ارسال اطلاعات برای socket فعال بر روی browser را فراهم کنیم. ایتدا یک فایل با عنوان Server.js را ایجاد کنید و کد زیر را داخل آن قرار دهید. چگونه برنامه را اجرا کنیم؟ برای اجرای سرور یک مرحله پس زمینه اضافه می کنیم. روی مرحله “Build Node App” کلیک کنید، باید مرحله اجرا را مشاهده کنید که به طور پیش فرض با تنظیمات اولیه اضافه شده است. و هنگامی که 3001 را در محلی خود باز می کنید، باید برنامه چت خود را در حال اجرا ببینید.

Socket.IO امکان ایجاد یک ارتباط کاملا دوطرفه real-time و البته رویداد محور را فرآهم می کند. بر روی هر پلتفرم و مرورگری می تواند مورد استفاده قرار گیرد البته همراه با سرعت و قابلیت اطمینان بالا. حالا اجازه دهید به سمت توسعه برنامه نویسی به کمک سوکت در نود جی اس حرکت کنیم. تابع مسئول نمایش پیام جدید، بلافاصله بعد از دریافت اطلاعات از سوکت است. پیام توسط فرم، به سمت listener موجود در سمت سرور ارسال می‌شود.

استفاده از Load Balancer و ابزارهایی مانند Nginx برای مدیریت اتصالات WebSocket و توزیع بار به سرورهای مختلف، به بهبود عملکرد و پایداری سرور کمک می‌کند. در اینجا یک سرور ساده WebSocket را پیاده‌سازی می‌کنیم که به پیام‌های دریافتی از کلاینت پاسخ دهد. شما باید اجرای موفقیت آمیز خط لوله را با گذراندن آزمایش مشاهده کنید. WebSockets API یک تکنولوژی است که یک کانال دو طرفه برای ارتباط میان کلاینت و سرور را فراهم می‌کند. این بدان معنی است که دیگر لازم نیست کلاینت، به هنگام درخواست دیتا از سرور، آغاز کننده transaction باشد. چه بخواهید یک توسعه‌دهنده حرفه‌ای Socket IO شوید و چه استارتاپ خود را راه‌اندازی کنید، تکمیل این دوره و تسلط بر Socket IO می‌تواند زندگی شما را تغییر دهد.

شما یاد نمی‌گیرید که هر چیزی چگونه کار می‌کند، هرگز به اسناد نگاه نمی‌کنید، و در پایان به این فکر می‌کنید که اکنون چه کار کنید. Socket io کتابخانه پادشاهی است که از سوکت های وب در زیر هود استفاده می کند. این بدان معناست که می‌توانید کد را بررسی کنید، با آن آزمایش کنید و از آن به عنوان مرجع برای تعمیق درک خود از Socket IO استفاده کنید. به دوره Premier SOCKET IO V4 Masterclass خوش آمدید، بهترین منبع اینترنتی برای یادگیری Socket IO و تبدیل شدن به یک حرفه‌ای در این زمینه! آماده شوید تا یکی از مهارت‌های بسیار پرتقاضا در بازار کار 2024 را به دست آورید.

در بازی‌های آنلاین چندنفره، سرعت و همزمانی ارسال داده‌ها اهمیت زیادی دارد. WebSockets امکان تبادل بلادرنگ اطلاعات بازی بین کاربران و سرور را فراهم می‌کند. بنابراین وقتی هر توسعه‌دهنده‌ای کد را به شاخه اصلی شما فشار می‌دهد، خط لوله فعال می‌شود و آزمایش را اجرا می‌کند. امروز در سلسله مطالب آموزشی 30 روز با نود جی اس، مفاهیم مقدماتی سوکت را یاد گرفتیم. ویژگیها، پیش نیازها و نصب آن را فرا گرفتیم و سپس عمیقا در سوکت شیرجه زدیم و 2 برنامه زنده با سوکت نوشتیم. هر نقل قولی که توسط ادمین بروزرسانی شود، در این صفحه دیده می شود.

با اضافه شدن دستورات می توانید اسکرین شات مرحله اجرا را ببینید. تغییرات را اعمال کنید و مرحله دیگری را برای آزمایش برنامه اضافه کنید. روی مرحله “Build Node App” کلیک کنید، که در حال اجرا است و تنظیمات پیش فرض را مشاهده خواهید کرد. داشتن کد منبع در دسترس شما، این امکان را می‌دهد که پروژه‌ها را به شیوه‌ای منحصر به فرد خودتان بررسی و بهبود بخشید. چه مبتدی باشید و چه دانش قبلی داشته باشید، ما شما را قدم به قدم از طریق آموزش‌های ویدئویی جذاب و پروژه‌های عملی هدایت می‌کنیم تا موفقیت شما به عنوان یک توسعه‌دهنده Socket IO تضمین شود.

با این روش می توانید ببینید که در کنسول عبارتی با عنوان «اتصال وب سوکت جدید» چاپ شده است یا نه. شاید برای شما این سوال به وجود آمده باشد که فایل index.html چیه و چه کاربردی تو این mini project داره. باید بگم اول از همه فایل index.htnl رو ایجاد کنید و کد زیر رو داخل این فایل اضافه کنید تا بیشتر باهم ای فایل رو مورد بررسی قرار بدیم. پاتریک شرودر یک توسعه دهنده جاوا اسکریپت کامل استک خودآموز است. او از کار با Angular، Node.js، Mongodb، React.js، Firebase و هر چیز دیگری که مربوط به جاوا اسکریپت باشد لذت می برد. او دوست دارد به دیگران کمک کند تا مفاهیم دشوار را با ایجاد ارائه های واضحی که به تدریج به درک کامل یک موضوع می رسد، درک کنند.

به‌هر‌حال، یک عیب بزرگ در استفاده از HTTP Long Polling، استفاده زیاد از منابع سرور است. به هنگام ایجاد اولین درخواست به سمت سرور، به غیر از دریافت دیتا، یک ارتباط WebSocket ایجاد می‌کند. این فرآیند، تحت عنوان WebSocket handshake نیز شناخته می‌شود. این روشی است که کلاینت به سرور اطلاع می‌دهد که نیاز دارد اتصالی را ایجاد کند. اگر هیچ نسخه ای را در ترمینال خط فرمان مشاهده نکردید، به این معنی است که NodeJs روی رایانه شما نصب نیست.

علاوه بر Express و Socket.IO بری ایجاد سرور مدنظرمون به ماژول HTTP نیاز داریم. متغییر server یک object از متود createServer که متغییر app را به عنوان parameter دریافت کرده است return می کند و همچنین متغییر server به عنوان پارامتر  در متود listen ماژول socket.io مورد استفاده قرار می گیرد. در تجربه من، اکثریت قریب به اتفاق مطالب موجود در وب فراتر از یک برنامه چت فوری با شروع سریع و فوری نیست. تا پایان این دوره Masterclass، شما یک درک جامع از Socket IO خواهید داشت و مهارت‌هایی برای ساخت برنامه‌های بلادرنگ، تست کردن آن‌ها، استقرار دادن آن‌ها و اطمینان از قابلیت اعتماد آن‌ها را به دست خواهید آورد. در اینجا می توانیم با مقدار دهی اولیه npm شروع کنیم تا راه اندازی پروژه جدید خود را دریافت کنیم. یک route در مسیر (/) ایجاد می کنیم که محتوای فایل index.html را return می کند.

Socket.IO در درجه اول از پروتکل websocket با ویژگی داده خواهی در قالب یک سیستم پشتیبان استفاده می کند، در حالی که همان رابط کاربری را ارائه می دهد. در بازارهای مالی و بورس، قیمت‌های لحظه‌ای سهام یا ارزها به سرعت تغییر می‌کنند. WebSockets امکان بروزرسانی بلادرنگ این داده‌ها را برای کاربران فراهم می‌کند. همان طور که در این قطعه کد مشاهده می کنید با ایجاد دسترسی به فایل های node_modules در این داریم از socket.io.js استفاده می کنید که قبل تر هم توضیحاتی داده شد. توجه کنید که برای اجرای سرور باید از متغییر server استفاده نمایید نه متغییر app و این کد به عنوان اولین قدم باید به درستی کار کند.

بخش وابستگی (dependency) های package.json اکنون در انتهای فایل package.json ظاهر می شود که شامل socket.io نیز شده است. یکی از نکات مهم در بهینه‌سازی WebSockets، مدیریت حجم داده‌ها است. ارسال داده‌های حجیم یا تکراری می‌تواند باعث کاهش سرعت و افزایش مصرف پهنای باند شود. سعی کنید تنها داده‌های ضروری را ارسال کنید و از فشرده‌سازی داده‌ها بهره بگیرید. داشبوردهایی که داده‌ها را به صورت زنده و بلادرنگ نمایش می‌دهند، مانند داشبوردهای مالی یا سیستم‌های مانیتورینگ، به WebSockets وابسته هستند تا اطلاعات در لحظه به‌روزرسانی شود. حالا با توجه به مواردی که در بالا انجام دادیم باید ببینیم به چه شکلی میتونیم از Socket.IO برای پیاده سازی موارد مد نظرمون استفاده کنیم.

در طول دوره آموزش پروژه محور و صفر تا صد ساخت برنامه های بلادرنگ با Socket IO، شما به کد منبع کامل برای هر پروژه و ویژگی که می‌سازیم دسترسی خواهید داشت. یکی از اصلی‌ترین کاربردهای WebSockets، ساخت سیستم‌های چت آنلاین است. با استفاده از WebSocket می‌توان پیام‌ها را به صورت بلادرنگ بین کاربران رد و بدل کرد. این تکنولوژی به خصوص برای پیام‌رسان‌های وب بسیار مهم است. این کار از طریق API WebSocket در جاوا اسکریپت انجام می‌شود. تمام تلاش ما در برند reactapp در کنار آموزش با کیفیت و استفاده از دانش روز، اضافه کردن چاشنی تجربه چندین ساله فعالیت در پروژه های داخلی و خارجی بوده.

او همچنین نحوه اضافه کردن یک فضای نام، کدگذاری یک اتاق جدید در فضای نام و راه اندازی چندین اتاق برای کاربران خود را پوشش می دهد. Socket.io  یکی از کتابخانه های زبان برنامه نویسی جاوا اسکریپت (Java script) برای استفاده در برنامه های تحت وب است که به شما اجازه می دهد تا ارتباط لحظه ای بین کلاینت ها و سرورها برقرار کنید. از آنجایی که Socket.io یک چارچوب بلادرنگ است، نوشتن تست های خودکار برای آن می تواند کمی چالش برانگیز باشد. با این حال، ما می‌توانیم یک آزمایش ساده بنویسیم تا بررسی کنیم که کلاینت و سرور می‌توانند با یکدیگر ارتباط برقرار کنند و پیام‌ها را ارسال/دریافت کنند. WebSockets یکی از قدرتمندترین پروتکل‌های ارتباطی برای ایجاد ارتباطات بلادرنگ و دوطرفه در وب است. این تکنولوژی به توسعه‌دهندگان این امکان را می‌دهد تا برنامه‌های تعاملی و مقیاس‌پذیری مانند چت آنلاین، بازی‌های چندنفره و داشبوردهای زنده را ایجاد کنند.


برنامه نویسی رباتیک