لدي مشروع لارافيل وقمت بإنشاء اتصال مع pusher لإرسال البيانات. نجحت العملية عند استخدام public channels ولكن عند استخدام private channels يفشل في تخطي المصادقة ويعيد الخطأ Error 403 فقط في القنوات الخاصة private channels
BroadcastServiceProvider.php يحوي التحقق من المستخدم عند إنشاء الاتصال بالقناة:
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Broadcast;
class BroadcastServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Broadcast::routes();
Broadcast::channel('App.User.*', function ($user, $userId) {
return true;
});
}
}
كود ملف bootstrap.js:
import Echo from "laravel-echo"
window.Echo = new Echo({
broadcaster: 'pusher',
key: 'My-Key-Here'
});
window.Echo.private('App.User.1')
.notification((notification) => {
console.log(notification.type);
});
يتم وصول البيانات بنجاح إلى pusher ولكنها تفشل عند الوصول إلى الروت auth
السؤال
Amir Alsaeed
لدي مشروع لارافيل وقمت بإنشاء اتصال مع pusher لإرسال البيانات. نجحت العملية عند استخدام public channels ولكن عند استخدام private channels يفشل في تخطي المصادقة ويعيد الخطأ Error 403 فقط في القنوات الخاصة private channels
BroadcastServiceProvider.php يحوي التحقق من المستخدم عند إنشاء الاتصال بالقناة:
namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\Broadcast; class BroadcastServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { Broadcast::routes(); Broadcast::channel('App.User.*', function ($user, $userId) { return true; }); } }
كود ملف bootstrap.js:
import Echo from "laravel-echo" window.Echo = new Echo({ broadcaster: 'pusher', key: 'My-Key-Here' }); window.Echo.private('App.User.1') .notification((notification) => { console.log(notification.type); });
يتم وصول البيانات بنجاح إلى pusher ولكنها تفشل عند الوصول إلى الروت auth
تم التعديل في بواسطة Amir Alsaeed1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.