我看不出来,想知道为什么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/