توضیحات

وب سوکت چیه؟
وب سوکت به عنوان یکی از Api های مرورگر یکی از روش های ارتباط بین کلاینت و سرور هست که امروزه به دلیل محبوبیت بسیار بالا یکی از تکنولوژی های مهم تو بازار کار محسوب میشه. در حالتی که به صورت Http ارتباطی بین کلاینت و سرور ایجاد میشه به ازای هر رکوئست یک کانکشن به وجود میاد و سپس به محض ارسال Response ارتباطی که ایجاد شده بود از بین میره، اوکی؟. اما ارتباطی که با سوکت ایجاد بشه اینطور نیست. به این صورت که با سوکت میتونیم یک ارتباط Realtime ایجاد کنیم و هر اتفاقی که سمت سرور / کلاینت میفته سریعا به کلاینت/سرور
ارسال کنیم
به عنوان مثال اپلیکیشن تلگرام رو در نظر بگیرین. وقتی یه پیامی رو تایپ کرده و تو پیوی یا یک گروه ارسال میکنین مخاطب شما یا اعضای اون گروه بدون نیاز به رفرش تلگرام یا باز و بسته کردن اپلیکیشن میتونن به پیام شما دسترسی داشته باشن. همچین ارتباطی با تکنولوژی Socket ایجاد میشه. جدا از این موارد سوکت به عنوان یک تکنولوژی حرفهای و سطح بالا شناخته میشه. برای پی بردن به این مورد پیشنهاد میکنم یه سر به آگهی های استخدامی با حقوق های بالا بزنین. تو همچین آگهی های استخدامی اسم Socket رو مشاهده خواهید کرد. سوکت یه دنیای بسیار جذاب و شیرینیه که تو این دوره قراره به صورت جامع قرار سوکت رو یاد بگیرین

چرا باید سوکت رو یاد بگیرم؟
یکی از ابزار هایی که برای حرفهایتر شدن نیاز دارین همین Socket هست. تو خیلی از پروژه های شرکت های بزرگ و حرفهای به خاطر پرفورمنسی که داره از سوکت استفاده میشه و اگر شما بخواین با همچین شرکت هایی همکاری داشته باشین باید تکنولوژی های حرفهای و خفنی مثل Socket رو بلد باشین. جدا از شرکت های بزرگ و مطرح دنیا اگه خودتون هم تو بازار فریلنسری بخواین یک پروژهای انجام بدین که نیاز به ارتیاط Realtime داشته باشه باید Socket رو بلد باشین تا پروژه از پرفورمنس بالایی برخوردار باشه.
چه کسایی باید Socket رو یاد بگیرن؟
همونطور که Rest Api هم تو آگهی های فرانتاند دیده میشه و هم تو آگهی های بکاند، تکنولوژی Socket هم هم برای فرانتاند پروژه نیاز هست و هم برای بکاند پروژه. یعنی توسعه دهنده بکاند باید بتونه یه کانکشن از نوع Socket ایجاد کنه و توسعه دهنده فرانتاند باید بتونه از طریق پکیج های مرتبط به کانکشن سوکت که سمت بکاند نوشته شده متصل بشه و باهاش کار کنه. پس در نتیجه شما چه در زمینه فرانتاند و چه در زمینه بکاند فعالیت بکنین به Socket نیاز دارین و برای حرفهایتر شدن و همکاری با تیمها و شرکت های بزرگ باید Socket رو بلد باشین.
مخاطبین دوره چه کسایی هستن؟
از طرفی محوریت این دوره زبان جاوا اسکریپت هست و از طرف دیگه Socket هم برای بکاند نیاز هست و هم برای فیلد فرانتاند. پس شما اگه توسعه دهنده بکاند (Node.js) هستین یا تو زمینه فرانتاند (React, Vue, Angular, …) کار میکنین Socket رو نیاز دارین و پیشنهاد میکنم تو دوره جامع Socket سبزلرن شرکت کنین.
پشتیبانی دوره به چه صورته؟
دوره جامع Socket هم مثل بقیه دوره های سبزلرن پشتیبانی رایگان و مادام العمر داره. یعنی بعد از این که تو دوره ثبت نام کردین بدون نیاز به هزینه اضافی به پشتیبانی دوره دسترسی دارین و حتی بعد از گذشت چندین سال پشتیبانی دوره براتون به اتمام نمیرسه و هر سوال و ابهامی راجع به Socket و پروژه هایی که با Socket توسعه میدین داشته باشین میتونین تو بخش پرسش و پاسخ دوره مطرح کنین تا مشکلتون برطرف شه.
پشتیبانی این دوره توسط خود مدرس انجام میشه.
آیا این دوره پروژه محور هست؟
صددرصد بله. مثل بقیه دوره های سبزلرن دوره جامع و پروژه محور Socket هم به صورت پروژه محور تدریس میشه و انتهای دوره بعد از این که مباحث Socket رو یاد گرفتیم یک اپلیکیشن سفارش غذای آنلاین با با قابلیت پشتیبانی Realtime + یک اپلیکیشن چت توسعه میدیم. بکاند هر دو پروژه رو با Node.js و Socket توسعه میدیم و کلاینت پروژهها رو رو یک بار با React.js + Socket و یک بار با Vue.js + Socket
بعد از این دوره به چه سطحی میرسم؟
شما بعد از گذروندن این دوره اگه توسعه دهنده بکاند هستین میتونین با Socket برای هر پروژهای که نیاز هست کانکشن Realtime بنویسین. همچنین اگه توسعه دهنده فرانتاند هستین بعد از گذروندن دوره میتونین با هر مدل سرور که با Socket نوشته شده باشه کار بکنین. همچنین بعد از گذروندن این دوره میتونین با حقوق بالاتر از قبل تو شرکت های حرفهایتر و بزرگتر استخدام بشید. برای پی بردن به این مسئله یه سر به آگهی های استخدامی با حقوق های بالا بزنین. تو همچین آگهی های استخدامی اسم Socket رو مشاهده خواهید کرد.
اگه این دوره رو نبینم چی رو از دست میام؟
امروزه منابع بسیار کمی برای آموزش Socket وجود داره. حالا این که از بین منابع موجود کدوم منبع آموزشی قابل اعتماد و جامع هست به جای خود. همچنین شما اگر Socket رو بلد نباشین شانس استخدام در تیمها و شرکت های بزرگ و همچنین توسعه پروژه هایی که نیاز به کانکشن Realtime نیاز دارن رو از دست میدین. با پشتیبانی، جامع بودن و هزینه ناچیزی که دوره Socket سبزلرن داره بهترین گزینه ممکن برای یادگیری این تکنولوژی مهم هست.
جلسات
معرفی دوره + پاسخ به سوالات متداول
بررسی و درک لایه های شبکه
TCP و UDP فرقشون چیه؟
WebSocket Api و Socket.io فرقشون چیه؟
ایجاد اتصال بین کلاینت و سرور با WebSocket
ارسال / دریافت پیام در WebSocket Api
ارسال / نمایش پیام به بقیه اعضای Chat Room (گروه چت)
نمایش اطلاعات ارسال کننده پیام در گروه
خوشگل کردن Ui پروژه :))
بررسی event های دیگر WebSocket Api - سخن پایانی
ریفکتور پروژه Chat Room از WebSocket Api به Socket.io
ارسال / دریافت Header و Query در Socket.io - سخن پایانی
رونمایی از پروژه فصل - هندل کردن کانفیگ های اولیه
توسعه Model های لازم برای پروژه
توسعه Api برای دریافت لیست دستهبندی گروهها (چتها)
توسعه Api برای اضافه کردن گروه چت به پروژه
توسعه Uploader برای آپلود عکس پروفایل گروه
init کردن socket در برنامه
ارسال nameapaceها به کلاینت
آشنایی با volatile
ارسال پیام به شکل broadcast
تعریف middleware در socket.io
جوین شدن و لفت دادن از گروهها (roomها)
جوین شدن کاربر در گروه (room) و ارسال اطلاعات room به کلاینت
دیباگ قسمت ارسال آخرین اطلاعات namespace
نمایش کاربران آنلاین در هر گروه
دیباگ قسمت کاربران آنلاین (وقتی کاربر از گروه لفت میده)
ارسال پیام ذخیرهسازی آنها در دیتابیس
پیاده سازی احراز هویت کاربران چت
توسعه Api برای دریاقت اطلاعات کاربر
تفکیک کردن چتها
توسعه قابلیت isTyping
دریافت و ذخیره سازی لوکیشن کاربر در دیتابیس
دریافت فایل های آپلودی از سمت کلاینت با Socket.io - سخن پایانی
رونمایی از پروژه
دریافت و نمایش دستهبندی گروهها (roomها)
اتصال به Namespace انتخاب کاربر
توسعه قابلیت سوئیچ شدن کاربر بین Namespaceها
توسعه قابلیت جوین شدن کاربر در گروه
نمایش جزئیات گروه جوین شده توسط کاربر
نمایش تعداد کاربران آنلاین در گروه
توسعه قابلیت ثبت نام / لاگین کردن کاربر
احراز هویت کاربر لاگین شده
ارسال Message به سرور
نمایش پیام ارسال شده به بقیه کاربران گروه
تفکیک پیام های ارسالی بنا به فرستنده پیام
توسعه قابلیت isTyping
ارسال لوکیشن به سرور
نمایش لوکیشن های ارسال شده به همه اعضای گروه
نمایش location به صورت Realtime
ارسال File به سرور در Socket.io
Close کردن کانکشن - سخن پایانی
معرفی فصل - ارسال Pvها به کلاینت
اتصال دو کاربر به شکل Pv - دریافت پیام های ارسالی در Pv
حذف کردن پیام به صورت دوطرفه - سخن پایانی
معرفی فصل - دریافت Pvها از سرور
جوین شدن کاربر به چت خصوصی
ارسال و دریافت پیام به صورت Realtime در پیوی
حذف پیام به صورت دوطرفه - سخن پایانی
معرفی فصل - توسعه بکاند پروژه
توسعه کلاینت پروژه با Vanilla Js - سخن پایانی
پروژه نمایش تغییرات ارزها با ریاکت
دریافت و نمایش Pvها
توسعه قابلیت ثبتنام / لاگین
پیاده سازی Route Protection
جوین شدن کاربر به Pv یه کاربر دیگه
ارسال پیام در پیوی
دریافت پیام های ارسال شده
حذف پیام به صورت دو طرفه - سخن پایانی
نمایش دستهبندی چتها (Namespaceها)
جوین شدن کاربر به گروه (room)
نمایش جزئیات گروهِ جوین شده توسط کاربر
ارسال / دریافت پیام به شکل Realtime
دیباگ پروژه
نمایش تعداد افراد آنلاین در گروه
توسعه قابلیت isTyping
ارسال فایل در Socket.io - سخن پایانی
معرفی پروژه - توسعه بکاند
توسعه کلاینت پروژه با Vanilla Js
توسعه کلاینت پروژه با React.js - سخن پایانی
