سعید جلالی
4 سال پیش توسط سعید جلالی مطرح شد
3 پاسخ

بهترین متد برای اجرا کردن socket با لاراول چی هست به نظرتون

دوستان کسی منبع آموزشی خوب برای یاد گیری socket با laravel سراغ داره؟
دیتا بیس باید چی باشه؟

از این پکیج لاراولی استفاده کردید؟
https://github.com/beyondcode/laravel-websockets

از https://pusher.com چطور؟


ثبت پرسش جدید
AriaieBOY
تخصص : TALL Stack Lover
@ariaieboy 4 سال پیش آپدیت شد
2

@saeedsjii
برای بحث وب سوکت در لاراول ما یکسری مسئله داریم.
1- وب سوکت سرور :
برای وب سوکت شما باید یک سرور جدا داشته باشید. حالا این وب سوکت سرور میتونه پوشر باشه میتونه socket.io باشه یا میتونه همین لاراول وب سوکت یا استفاده از لایبراری های دیگه مثل reactphp باشه.
که خوب خیلی توصیه نمیشه از php برای وب سوکت سرور استفاده کنید.
2- ارسال داده ها از لاراول به وب سوکت سرور :
خوب بعد از اینکه وب سوکت سرور خودتون راه اندازی کردید. اون موقع باید بیایید حالا بر اساس ایونت هایی که رخ میده داده های مد نظرتون از لاراول به وب سوکت بفرستید که برای این کار بخش برادکستینگ در لاراول داریم:
https://laravel.com/docs/8.x/broadcasting
3- دریافت و نمایش اطلاعات سمت کاربر
برای دریافت و نمایش اطلاعات سمت کاربر هم که خوب laravel echo را داریم که داکیومنتش توی لینک زیر موجوده :
https://laravel.com/docs/8.x/broadcasting#receiving-broadcasts
4- دریافت اطلاعات از سمت کاربر
برای دریافت اطلاعات از سمت کاربر هم که فقط کافیه سمت کاربر با استفاده از ajax یک ریکوئست به یک api اندپوینت ریکوئست بفرستید و داده ها رو بگیرید و ذخیره کنید و حالا اگر لازم بود در قالب یک ایونت باز اطلاعات جدید از طریق وب سوکت مربوطه برادکست کنید.

5- هندل client event ها
توی مرحله آخر شاید بخواهید بعضی کلاینت ایونت ها را بدون اینکه بخواهید سمت لاراول داده ای بفرستید توی چنل share کنید.
مثلا چی ؟ فکر کنید یک سیستم چت هست 100 نفر عضو هستند یکی یا چند نفر شروع میکنند به تایپ کردند نیازی نیست این مورد سمت لاراول فرستاده بشه فقط کافیه با استفاده از توضیحات لینک زیر یک کلاینت اوینت ارسال کنید و توی کلاینت های دیگه نمایش بدید که مثلا فلان یوزر در حال تایپ هست.
https://laravel.com/docs/8.x/broadcasting#client-events

و در آخر هم لینک زیر که توسط خود پوشر ساخته شده که یک سیستم چت خیلی ساده را پیاده سازی میکنه میتونه کمک کنه مواردی که گفتم راحت تر پیاده سازی بکنید.
https://pusher.com/tutorials/chat-laravel


سعید جلالی
@saeedsjii 4 سال پیش مطرح شد
0

@ariaieboy
خیلی ممنون بابت پاسخ کامل و راهنماییتون.
من آخرین لینکی که ارسال کردید رو با vue اجرا کردم چنتا سوال برام پیش اومد.
1-شما خودتون از پوشر برای پروژه های نسبتا بزرگ استفاده کردید ؟ امکاناتش تو ایران جوابگو هست؟
2-وقتی با vue موردی پیاده سازی بشه هم نیاز به سرور اختصاصی هست برای realtime بودن؟


AriaieBOY
تخصص : TALL Stack Lover
@ariaieboy 4 سال پیش مطرح شد
1

@saeedsjii
1- من خیر استفاده نکردم خود پوشر یک محدودیت تعداد کانکشن و تعداد مسیج داره که بخواهید بیشتر استفاده کنید باید به دلاری خریداری کنید که هزینش زیاد میشه.
2- بحث realtime روش های زیادی داره و به فرانت اند کاری نداره. شما باید توی بخث بک اندتون قابلیت پردازش در لحظه را انجام بدید. روش های لانگ پولینگ هست میتونید سرچ کنید زیاد پیشنهاد نمیشه بحث setinterval هم هست که من خودم استفاده میکنم ولی خوب اگر تعداد یوزر بره بالا میتونه روی سرور فشار بیاره. ولی بازم اگر بهینه سازی بشه میتونه تعداد خیلی خوبی را جواب بده


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام