Почему вещательный канал общественного не работает? Laravel

Я использую Laravel 5.3

Я делаю маршруты /channel.php как это:

<?php
Broadcast::channel('messages', function() {
    return true;
});

Если я введу корзину данных и нажму "Отправить", она запустится так:

this.$http.post(window.BaseUrl + '/guest/add-notification', {cart_data: JSON.stringify(data)});

Вызовет функцию на контроллере

Функция как это:

public function addNotification(Request $request){
    $input = $request->only('cart_data');
    $data = json_decode($input['cart_data'], true);
    event(new CartNotificationEvent($data));
}

Тогда это вызовет событие

Событие как это:

<?php
namespace App\Events;
use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class CartNotificationEvent
{
    use InteractsWithSockets, SerializesModels;
    public $data;
    public function __construct($data)
    {
        $this->data = $data;
    }
    public function broadcastWith()
    {
        return [
            'message' => $this->data,
        ];
    }
    public function broadcastAs()
    {
        return 'newMessage';
    }
    public function broadcastOn()
    {
        return new Channel('messages');
    }
}

На клиенте я делаю так:

Echo.channel('messages')
.listen('.newMessage', (message) => {
    console.log('test')
    console.log(message);
});

Когда весь код выполняется, я проверяю на консоли, console.log не отображается

Почему это не работает?

Если я вижу весь код, который я делаю, кажется, что процесс правильный

1 ответ

Решение

class CartNotificationEvent implements ShouldBroadcast пропал, отсутствует.

Другие вопросы по тегам