سلام و خسته نباشید. من با توجه به آموزش های مختلفی که چه از راکت چه در youtube دیدم یه چت ریل تایم پیاده کردم با vue js و laravel
همه چیز اوکی هست اما یه مشکلی دارم اینکه وقتی کاربر داره پیامش رو مینویسه و روی دکمه ارسال کلیک میکنه یه ریکویست عادی http داره به لاراول ارسال میشه که خوب اینجا زمان بر هست و بین 1 تا 3 ثانیه زمان میبره! این قسمتش رو توی هیچ آموزشی ندیدم که چی کار باید کرد تو لاراول که از کلاینت مستقیما با سوکت یه چیزی رو به کنترولر لاراول بفرستیم.
دوستانی که این قسمت از کار رو تونستن درست کنن لطفا راهنمایی کنن ممنون
شما باید از socket استفاده کنید اگر real ime میخواهید باشه . بهترین گزینه workerman هست من دو سالی هست استفاده میکنم و فوق العاده هست فقط تا حدودا 100K رو تونستم تست کنم .
https://github.com/walkor/workerman
https://bestofphp.com/repo/garveen-laravoole
تا جایی که من متوجه شدم فعلا چنین چیزی شدنی نیست و عملا از وب سوکت (با اینکه یک راه ارتباطی دو طرفه هست) داریم بصورت یک طرفه استفاده میکنیم.
بحث های زیادی هم راجع بهش شده و در نهایت تقریبا هیچ کدوم به نتیجه قابل عرضی نرسیدند:
و اگر این قضیه خیلی براتون حیاتی محسوب میشه شاید نیاز باشه تجدید نظری در خصوص زبان PHP بکنید و مثلا به سراغ Nodejs که ذاتا بصورت RealTime هست برید.
در غیر اینصورت راه رایجش همین هست که پیام از سمت کاربر با http و مثلا Ajax به سمت سرور ارسال میشه. اونجا یک Event صدا زده میشه و عملیات Broadcast به کانال های تعیین شده انجام میشه. و در سمت کاربر کاربرانی که درحال listen روی اون کانال هستند پیام رو بدون نیاز به رفرش دریافت میکنند.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟