آموزش تخصصی و پروژه محور Socket.io در Node.js مقدمه دوره - جلسه معرفی دوره
دسته بندی: طراحی و برنامه نویسی وب

روزبه سبزه ای
برنامه نویس Node.js
210
جلسه منتشر کرده3
دوره دارد89
دانشجو دارد
دانلود این قسمت ( قسمت 1 )
دوره آموزش کامل آخرین نسخه فریمورک Socket.IO در Node.js به همراه آموزش پیاده سازی به صورت Scale ( به همراه Clustering و دیتابیس Redis ) و همچنین نحوه پیاده سازی و تنظیمات مربوطه در فریمورک React.js
پیش نیاز های این دوره :
- آشنایی با جاوااسکریپت
- تسلط بر ES6/ES7
- آشنایی با Node.js
تو این دوره از ابتدایی ترین مباحث شبکه و لایه های آن صحبت میکنیم و در آخر پروژه های مختلف و کاملا کاربردی مثل چت روم پیشرفته و سیستم مانتورینگ با استفاده از Redis را پیاده سازی میکنیم.
محمد
سلام جناب سبزه ای عزیز، وقت بخیر ممنون بابت آموزش خوبتون. من قبلا موضوعی رو مطرح کرده بودم که در پاسخش شما فرمودید که این موضوع درون آموزش پوشش داده میشه اما متاسفانه من به پاسخ مناسبی نرسیدم. سوالم این بود: شما لیست namespace ها و رومهارو از قبل آماده کرده بودید فرض کنید دو نفر بخوان بصورت خصوصی ( خارج از این رومهای پیش فرض ) با هم چت کنن و این چت باکس ( یا به اصطلاح room ) رو کسی جز این دو نفر نبینن، باید چه روشی پیاده سازی بشه ؟ لطفا اگر براتون مقدوره، در تکمیل این دوره خیلی خوبتون، این موضوع رو هم پوشش بدید . اگر امکانش هست، از یک دیتابیس ساده ( هر چیزی که خودتون صلاح میدونید ) استفاده کنید که پوشش حداکثری داشته باشه چون اگر شخص مقابل سوکت فعال نداشته باشه و بخوایم براش پیامی ارسال کنیم که وقتی آنلاین شد ببینه هم پوشش داده میشه. مسائلی از این دست واقعا جای خالیش حس میشه و میشه گفت بیش از ۹۰٪ آموزشهای موجود در اینترنت، همین سرفصلهارو آموزش دادن و میشه ازشون استفاده کرد اما امیدوارم این آموزش یکی از بهترینها بشه و بتونیم ازش استفاده درست و کارآمد داشته باشیم. متشکرم
محمد
ممنون از پاسخ شما جناب سبزه ای بزرگوار حقیقتش اینه که قطعا تئوری و عملی یک دنیا با هم فرق دارن شما در قسمتهای اول دقیقا سوکت رو بصورت تئوری مطرح کردید و بعدش بصورت عملی توضیح دادین که خیلی خوب و عالی بود متوجهم که سرتون خیلی شلوغه ولی فکر نکنم بیش از دو قسمت برای این موضوع نیاز باشه چون واقعا ضروری هست برای این دوره و البته من قبلا قولش رو ازتون گرفته بودم ;) اگر من اکانت شمارو بگیرم و پیام بدم خدمتتون، مطمئنا اگر بقیه دوستان هم همین سوال رو داشته باشن، کار شما دوبرابر میشه ممنون میشم یه فرصت کوتاه به ما کارآموزاتون بدید و این آموزش رو به یکی از کاربردیترین آموزشها تبدیل کنید. واقعیت اینه که درون وب سایتهای دیگه این آموزش مطرح شده بود ولی بخاطر اینکه گفته بودید این موضوع رو پوشش میدید، تهیه کردمش. پیشاپیش از شما متشکرم.
روزبه سبزه ای
سلام دوست عزیز تا جایی که یادمه به صورت تئوری داخل دوره توضیح دادم سوال شما رو. من این روزا متاسفانه سرم شلوغه. اگر دوست دارید آی دی بنده رو از مدیریت سایت بگیرید تا اونجا براتون توضیح بدم و بتونیم بهتر مشکل شما رو بررسی کنیم
سعید نوروزی
سلام و خسته نباشید. با تشکر از دوره واقعا عالیتون! چند سوال داشتم در مورد استفاده از کلاستر ها و scale کردن پروژه که شاید چندان مرتبط با سوکت نویسی نباشه ولی چون توی تمام دوره های برنامه نویسی مرتبط با node که دیدم تنها مدرسی که به این موضوع اشاره کرد شما بودید گفتم از خودتون بپرسم! آیا استفاده از کلاستر مشکلاتی برای خود برنامه هم ممکنه ایجاد کنه (جدای از دو مشکل اصلی که توی دوره توضیح دادید)؟؟ و اینکه اگر برای تمام پروژه ها و برنامه هایی که ایجاد میکنیم چه دارای سوکت چه فاقد سوکت (یک حالت کلی) از همون ابتدای امر بیایم و کلاستر تعریف کنیم و مقیاس پذیری پروژه رو بالا ببریم آیا ممکن هست ایجاد مشکل بکنه؟؟
روزبه سبزه ای
سلام دوست عزیز، ببینید استفاده از روش ها و دیزاین های نرم افزاری مختلف باید زمانی باشه که واقعا بهش احتیاجه ! برای مثال من اگه بخوام یه سایت وبلاگی بیارم بالا دلیلی نداره با معماری ماکروسرویس طراحیش کنم و درگیر پیچیدگی های اضافی کنم خودمو و بار اضافی بزارم رو دوش اون نرم افزار، در صورتی که با معماری مونولیتیک هم به خوبی و حتی بهتر از ماکروسرویس کارم راه می افتاده. برای سوال شما هم قضیه همینه، یعنی باید بر اساس نیاز تکنولوژی ها و معماری ها انتخاب بشن. هر چیزی مثل همین کلاسترینگ یه سری حسن و یه سری معایب داره، مثلا برای کلاسترینگ مشکلات هندل کردن state ها و ... که داخل دوره احتمالا بهش اشاره کردم براش وجود داره که قابل حله. یا اونقدر باید تجربتون بالا باشه که قبل از شروع پروژه تصمیم بگیرید چه معماری رو انجام بدین یا اگه ایده ای ندارید حداقل برنامتون رو اونقدر تمیز بنویسید که بعدها اگر تو تست متوجه شدین طراحی یه قسمتی از برنامه اشتباه بوده بشه راحت تر عوضش کرد.
Mohammad Hasani
خسته نباشید دوره با express تدریس میشه و اینکه منظورتون از scale توی پروژه چیه ؟
روزبه سبزه ای
سلام دوست عزیز دوره آموزش Socket.io هست نه فریمورک express، اما ازش به عنوان HTTP سرورمون در حد بالا آوردن یه سرور خیلی ساده استفاده میکنیم که این کارو با هر جور که خودتون راحت تر هستین هم میتونید انجام بدین. منظور از scale مقیاس پذیر بودن هست، بشه App مون رو تو مقایس های بزرگ با تعداد کاربر و ریکوئست بالا هندل کنیم.
علی میرزاباقر برزی
سلام وقت بخیر، میخواستم بدونم دوره webRTC هم برگزار میکنید ؟
روزبه سبزه ای
سلام دوست عزیز، تو برنامم هست اما اینکه کی شروعش کنم معلوم نیست.
mansa
سلام ممنون برا دوره بسیار کاربردیتون سوال من اینه که وقتی گروه بندی اتاقها و نام اتاقها برای خود کاربر نمایش داده میشه و اصلا لزومی نداره که همه ببیند چرا باید این مرحله کار داخل سوکت انجام بشه خب ما میتونیم ساخت روم ها رو داخل فرانت انجام بدیم بعد مرحله ورود به هر اتاق خاص رو با نامش به سوکت ببریم
روزبه سبزه ای
سلام وقتتون بخیر، بله خب طبیعتا این کار هم میشه کرد اما بردن منطق یک سیستم سمت "کلاینت" هم از لحاظ امنیتی مشکل داره هم از لحاظ scaling، حالا تو وب شاید این مورد مشکلی نداشته باشه اما اگه اپ ما روی اندروید بود فرضا و اگر روزی خواستیم یه روم جدید اضافه کنیم باید برای همه اپ های گوشی آپدیت بدیم و کلی کد و وقت صرف اونا کنیم دوباره اما وقتی منطق سمت سرور باشه هر وقت خواستیم میتونیم یه روم کم کنیم یا اضافه کنیم بدون اینکه کلاینت ها نیاز به آپدیت داشته باشن سعی کنید همیشه منطق یه سیستم آنلاین تا حد زیادی سمت سرور باشه که کنترل و سازماندهیش راحت تر باشه.
Mj
سلام استاد خسته نباشید استاد اگر امکانش هست برای این دوره بروزرسانی در نظر بگیرید و اموزش استفاده socket.io در rabbitMQ را بدید . اصلا همون پروژه چت این دوره را با rabbit بزنید
روزبه سبزه ای
سلام وقتتون بخیر، بسیاری از پروتکل ها میتونن با هم و در کنار هم کار کنند و خب اگه بخوایم برای همه ی اینا آموزش بزاریم از بحث اصلی دور میشیم و شاید خیلیا نخوان اون مطلب رو فرا بگیرن، برای همین ترجیح بنده روی خود socket.io هست
محمد حسینی
سلام قابلیت ارسال وویس و صحبت کردن با صدا هم هست در این چت روم؟
روزبه سبزه ای
سلام وقت بخیر، خیر دوست عزیز تمرکز اصلی روی آموزش کل داکیومنت socket.io بوده البته برای چت وویس به صورت ریل تایم استفاده از WebRTC پیشنهاد میشه
محمد مصطفی تربتی راد
سلام ببخشید خواستم یه انتقادی از شما بکنم، توی دوره ها صدای نویز میومد و صداتون کم بود، و من مجبور بودم صدا رو زیاد کنم، . همچنین خیلی ایست میکردید هی از e استفاده میکردید که باعث میشه اون کسی که داره اینارو میبینه یمقدار کلافه بشه و صدای آب دهنتون و قورت دادنش توی کل فیلم بود که واقعا اذیت میکرد. از نظر علمی خوب بود ولی خب این مشکلا باعث میشن نشه همه ی دوره رو کامل کرد. بازم من عذر خواهی میکنم اقای سبزه ای، فقط خواستم یه انتقاد کوچیک از دوره هاتون بکنم تا در دوره های بعدی دیگه این موردا نباشن ممنون، خسته نباشید
روزبه سبزه ای
سلام، ممنون بابت انتقادتون و عذر میخوام از مشکلات پیش اومده، مشکل نویز رو تا حدی تونستم حل کنم ولی خیلی تلاش کردم به صفر برسونمش که نشد. از بابت مسائل دیگه هم عذر میخوام تجربه اولم بود سعی میکنم بهتر باشه دفعه های بعد. ممنون از شما
سعید نوروزی
سلام و خسته نباشید من در حال حاضر روی یک پروژه درگیرم که اولین پروژه ای هست که با سوکت دارم کار میکنم که به یک مشکل خیلی رو اعضاب برخوردم که تصمیم گرفتم که لازمه یک آموزش در زمینه سوکت نویسی تهیه کنم و ببینم حالا میخواستم آموزش های شما رو تهیه کنم ولی حالا باز میخواستم درخواست کنم که آیا امکانش هست یک کمک برای این مشکل به من بدهید؟؟ لینک سوال مطرح شده در stackoverflow: https://stackoverflow.com/questions/67600049/node-js-socket-connection-error-on-main-server
روزبه سبزه ای
سلام و وقت بخیر اینجور مشکلا مخصوصا مشکلات مثل time out یا connection fail رو باید دقیقتر بررسی کرد دلایل مختلفی میتونه باشه که باید دونه دونه بررسی بشن متاسفانه اینجا امکانش نیست ولی اگه مشکل از خود socket.io باشه میتونید با event مربوط به error دیباگ کنید. ولی میگم باید به طور دقیق تری بررسیش کرد. داخل دوره خیلی مفهومی و به صورت عملی خیلی از نکات رو میگیم و اینجور مشکلات کمتر به وجود میاد ولی به هر حال اگر نیاز به کمک داشتید از مدیریت وب آموز با بنده در تماس باشید.
کیوان احمدی
سلام آقای سبزه ای . خسته نباشید می گم. یک سوال از خدمتتون داشتم بنده یک پروژه لاراولی دارم و UI رو با Blade راه اندازی کردم. میخوام نوتیفیکیشن ها بصورت Realtime برای کلاینت بره (یه چیزی مثل Facebook) به نظرتون از Sooket.io باید در کنار لاراول استفاده کنم. اصلا همچین چیزی شدنی هست؟ یا پیشنهاد دیگه ای دارید.
روزبه سبزه ای
سلام و وقت بخیر. من تخصص Laravel ندارم اگه از اساتید متخصص تو این زمینه بپرسید بهتره. اما برای لاراول از ابزار Pusher برای کاری که شما مدنظرتون دارید میتونید استفاده کنید یا از Websocket عادی استفاده کنید. به نظر نمیرسه Socket.io رو بتونید با تمام ویژگی هاش و سرورش پیاده سازی کنید روی لاراول و امکانش نباشه.
مهدی محمدی
با عرض سلام سیستم چت روم با سوکت کامل اجرا میشه ( چت روم های دیچت رو منظورمه) یا اینکه واسه اپلیکیشن مختصر هست
روزبه سبزه ای
سلام و وقت بخیر ، دمو پروژه چت روم پیشرفته همراه توضیحات بنده به صورت رایگان موجوده و میتونید مشاهده کنید ، بعد از دیدن کامل دوره و تمرین انتظار میره خودتون بتونید هر ویژگی جدیدی که دوست دارید به پروژه هاتون اضافه کنید و اگر باز هم سوالی داشتید داخل نظرات بپرسید چون بنده در جلسات تکمیلی آخر دوره به سوالاتی که احیانا داخل دوره بهش پاسخ ندادم و بررسیشون نکردم پاسخ میدم. ممنون از نظرتون
علیرضا
بهتر نبود اول یه دوره در مورد Node js تدریس کنید؟
روزبه سبزه ای
سلام ، حرف شما کاملا درسته بنده به دلیل تایم فشرده ای که دارم نتونستم از Node.js شروع کنم و نمیخواستم دوره ای که ضبط میکنم یک دوره سطح پایین باشه ، انشالله اگر باز هم فرصتی بود در آینده و بنده وقت آزادتری داشتم دوره جامعی از Node.js رو براتون آماده میکنیم. ممنون از نظرتون
عرفان پیری خواه
سلام روزتون بخیر در این دوره راجب webRTC هم توضیحی داده میشه ؟
mansa
بله منم خیلی مشتاق یادگیری webRTC هستم مخصوصا voice
روزبه سبزه ای
سلام وقت بخیر ، فعلا تمرکز اصلیمون یک آموزش جامع برای Socket.io هست ، پیشناهاداتی که دوستان دادند در قالب پروژه و جلسات تکمیلی در آینده اضافه میشه در مورد WebRTC هم باید ببینیم دوره چقدر بازخورد داشته که پوشش بدیم داخل سرفصل ها یا نه ، فعلا طبق سرفصل های از قبل اماده شده پیش میریم
مرتضی مرادی
سلام من میخوام همزمان چند نفر بتونن با هم صبحت کنن و صداشون هم باهم همزمان پخش بشه چطوری باید اینکارو بکنم؟
روزبه سبزه ای
سلام ، برای این منظور استفاده از WebRTC توصیه میشود
hs-dev
سلام وقت بخیر من ویو کار میکنم و میخوام سوکت رو تو اپلیکیشن ویو خودم هم به کار ببرم برای مثلا ساخت چت روم ایا این دوره پاسخگوی نیاز من هست ؟ ممنون از تیم وب اموز
روزبه سبزه ای
سلام وقتتون بخیر، شما داخل این دوره به صورت کامل و جامع با مفاهیم socket.io آشنا میشید، طبیعتا بعد از تسلط روی مفاهیم میتونید پلتفرمتون رو عوض کنید و مثلا بر روی Vue کار کنید، برای اینکه نحوه کار داخل یکی از فریمورک های محبوب هم توضیح داده باشیم کار با socket.io داخل React هم پوشش دادیم.
محمد
سلام جناب سبزه ای، وقت بخیر متاسفانه درون دوره هایی که درون اینترنت هست، همشون ساده ترین حالت ممکن ( چت روم ) رو آموزش میدن فکر میکنم ارسال پیام بین دو نفر ( پیام شخصی ) واقعا گزینه ی مهمیه. از سرفصلها و موضوعاتی که مشخص کردید معلومه که این موضوع پوشش داده نشده ، درست میگم؟ فکر میکنم خواسته من و دیگر دوستان هم همین باشه که اگر اسم دوره رو ، دوره جامع بزاریم، میتونه شامل این مبحث مهم هم باشه انتظار من از دوره ای که میخوام تهیه کنم اینه: ۱ - چت عمومی رو پوشش بده ( مثله گروه های تلگرام ) ۲ - چت خصوصی رو پوشش بده و چندین چت مختلف بین اعضا رو هندل کنه ( برای مدیریت پیامهایی که از طرف یک یا چند نفر دریافت میشه و نمایش پیام های خوانده نشده ) ممنون از جنابعالی بابت زحمتی که میکشید . پایدار باشید
روزبه سبزه ای
خواهش میکنم عزیز به مدیر سایت پیام بدید تا منو به شما وصل کنه طبق قوانین سایت اینجا نمیتونیم به کسی ایدی تلگرام بدیم @nikoo_mohammad
محمد
ممنونم که با حوصله جواب میدید جناب سبزه ای بزرگوار یک سوال دیگه هم از خدمتتون داشتم، اونم اینکه: آیا میشه درون تلگرام و یا هر روش دیگه ای که شما راحت باشید، با شما ارتباط داشته باشم ؟ ( بعد از تهیه دوره )
روزبه سبزه ای
سلام ، ببینید دمو پروژه اول و دوم به صورت رایگان موجوده میتونید ببینید پروژه نهایی چه شکلی میشه درباره پیغام خصوصی داخل دوره اشاره کردم که به چه شکل انجام میشه، حالا اگه باز هم بعد از دیدن دوره خودتون نتونستید پیادش کنید بفرمایید من براتون توضیح میدم (داخل یک جلسه مجزا ضبط شده داخل همین دوره) ، درباره بقیه موارد هم همینطور. موفق باشید
محمد
ممنونم جناب سبزه ای من از پاسخی که دادین متوجه نشدم که درون این دوره پوشش داده میشه یا خیر ؟! من میخوام دوره رو تهیه کنم ولی همچنان نمیدونم دوره ی دیگه ای مد نظرتون بود یا درون همین دوره پوشش داده میشه ممنون میشم راهنمایی بفرمایید.
روزبه سبزه ای
سلام و وقت بخیر ممنون از انتقادتون ، تو پروژه چت روم پیشرفته خیلی از مباحث پایه ای رو پوشش میدیم و هدفمون هم همین هست ، یعنی پایه و اصول Socket.io رو به خوبی درک کنیم پروژه بعدی حرفه ای تره و تو دوره های کمی گفته شده و واقعا هم مسئله مهمی هست و قطعا قدم مهمی تو افزایش دانش socket.io شما میتونه باشه، مواردی که فرمودین رو حتما داخل جلسات تکمیلی پوشش میدیم نگران نباشید.
سید مصطفی حسینی
سلام وقت بخیر من به شدت نیاز دارم که سمت سرور شما رو داشته باشم و برنامه نویسی اندروید هم داشته باشم ایا برای برنامه نویسی اندرویدش چیزی ندارید؟
روزبه سبزه ای
سلام و وقت بخیر این دوره آموزش کامل Socket.io هست و ما کل داکیومنت Socket.io رو بررسی میکنیم، تو این دوره به صورت خاص اپلیکیشن اندروید توسعه نمیدیم اما با دانشی که کسب میکنید سمت کلاینت اندرویدتون هم قطعا میتونید استفاده کنید پکیج مربوط به کلاینت اندروید socket.io-client-java میباشد که میتونید تهیه کنید