我看不出来,想知道为什么broadcaston()没有触发。这是我的代码:

    <?php

namespace App\Events;

use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class NotificationEvent extends Event implements ShouldBroadcast{
    use SerializesModels;

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

    /**
     * Get the channels the event should be broadcast on.
     *
     * @return array
     */
    public function broadcastOn()
    {
        //var_dump("Sending event to:".'userNotifications.'.$this->user_id);
        //return ['userNotifications.'.$this->user_id];
        \Log::info("broadcast notification");
        \Log::info($this->message);
        return ['notifications'];
    }
}

登录构造可以工作,但登录broadcaston()不工作。
我的.env文件设置为redis,redis服务器已打开,正在端口3001上侦听。
有人知道为什么现在会这样吗?

最佳答案

实际的广播是一项工作。看看你的拉维尔工作队列。当作业通过php artisan queue:work执行时,将触发broadcastOn()方法。

关于php - Laravel 5.2事件广播没有触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38485326/

10-16 06:36