مشکل در laravel echo و pusher

- 6 روز پیش
توسط TEFO آپدیت شد
محسن بستان ( 20275 تجربه )
7 روز پیش
تخصص : توسعه دهنده وب

سلام دوستان.
قبل از هر چیزی عذرخواهی میکنم بابت اینکه برای دومین بار هستش که این تاپیک رو ایجاد میکنم چون هیج جوابی پیدا نکردم مجبور شدم.
کل اینترنت رو گشتم و به جواب نرسیدم امیدوارم شما بتونید کمک کنید.
من با استفاده pusher نوتیفیکیشن هام رو ارسال میکنم ( از ایونت استفاده نمیکنم ، از خود notifications استفاده میکنم ) و کد فایلش هم به صورت زیر هستش :

<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Messages\BroadcastMessage;
use Illuminate\Notifications\Notification;

class videoProcessStatus extends Notification
{
    use Queueable;

    public $message;

    /**
     * Create a new notification instance.
     *
     * @return void
     */
    public function __construct($message)
    {
        $this->message = $message;
    }

    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return ['database','broadcast'];
    }

    /**
     * Get the array representation of the notification.
     *
     * @param  mixed $notifiable
     * @return array
     */
    public function toArray($notifiable)
    {
        return [
            "status" => $this->message['status'],
            "message" => $this->message['message']
        ];
    }

    /**
     * Get the broadcastable representation of the notification.
     *
     * @param  mixed $notifiable
     * @return BroadcastMessage
     */
    public function toBroadcast($notifiable)
    {
        return new BroadcastMessage([
            "status" => $this->message['status'],
            "message" => $this->message['message']
        ]);
    }
}

و در یکجایی با استفاده از کد زیر نوتیفیکیشن رو ارسال میکنم که به درستی هم ارسال میشه یعنی توی دیتابیس و هم توی pusher دریافت میشه.

$user = User::find(1);
        Notification::send($user, new videoProcessStatus($message));

توی pusher به صورت زیر دریافت میشه :

API MESSAGE
Channel: private-users.1, Event: Illuminate\Notifications\Events\BroadcastNotificationCreated

{
  "status": "success",
  "message": " ویدیو تست با موفقیت در کیفیت 10 پردازش شد!",
  "id": "93abf28d-49ef-4490-8aed-626b283fc794",
  "type": "App\\Notifications\\videoProcessStatus"
}

حالا مشکل اینجاست که دیگه این پیام توی سایت خودم نمایش داده نمیشه. منظور از puhser هیچی دریافت نمیکنه.
کدی هم که با laravel echo نوشتم به صورت زیر هستش :

import Echo from 'laravel-echo';

window.Pusher = require('pusher-js');

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: 'MY_Code',
    cluster: 'ap2',
    forceTLS: true
});

Echo.private('App.User.1')
    .notification(function (event) {
        console.log(event);
    });

جالب اینجاست که وقتی از Pusher.logToConsole = true; استفاده میکنم توی کنسول پیام زیر رو نشون میده :

Pusher : No callbacks on private-App.User.1 for pusher:subscription_error

دوستان امیدوارم که توضیحات کامل بوده باشه لطفا کمک کنید :(

@hesammousavi
@ali.bayat
@Alimotreb

علی بیات ( 211697 تجربه )
6 روز پیش
تخصص : توسعه دهنده ارشد وب

درود

BROADCAST_DRIVER رو داخل فایل env درست تنظیم کردید؟

BROADCAST_DRIVER=pusher
محسن بستان ( 20275 تجربه )
6 روز پیش
تخصص : توسعه دهنده وب

@ali.bayat
بله

علی بیات ( 211697 تجربه )
6 روز پیش
تخصص : توسعه دهنده ارشد وب

پیوند زیر رو بررسی کنید
https://github.com/laravel/echo/issues/55

محسن بستان ( 20275 تجربه )
6 روز پیش
تخصص : توسعه دهنده وب

@ali.bayat
به نتیجه ای نرسیدم :(

TEFO ( 10820 تجربه )
6 روز پیش
تخصص : لاراول

به جای toArray بنویسین toDatabase

برای ارسال پاسخ باید وارد سایت شوید