我已经将 Laravel 设置为使用推送器为 Laravel Echo 发送事件,但是我从工匠控制台触发的事件没有到达推送器。我从推送调试控制台触发的事件工作正常,所以前端部分没问题。流浪虚拟机会干扰它吗?
我的 .env 文件
QUEUE_DRIVER=sync
...
PUSHER_KEY=<key>
PUSHER_SECRET=<secret>
PUSHER_APP_ID=<app_id>
我的广播.php
'default' => env('BROADCAST_DRIVER', 'pusher'),
...
'connections' => [
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_KEY'),
'secret' => env('PUSHER_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => 'eu',
'encrypted' => true
],
],
...
]
事件:
class NewMessage implements ShouldBroadcast
{
public function broadcastOn()
{
return [new Channel('chat.'.$this->conversation->id)];
}
}
该事件是从观察模型事件的观察者类触发的created
。
public function created(Chat\Message $message)
{
event(new NewMessage($message));
}
观察者注册在AppServiceProvider
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
Message::observe(MessageObserver::class);
}
}
当我运行创建新消息的控制台命令时,终端会显示:
php artisan chat:broadcast asdasd
[2016-12-15 16:26:44] local.INFO: Broadcasting [eventname] on channels [channel] with payload: {...}
注意:大多数名称都是机密的,所以我使用了事件名称、频道等占位符,但我希望相关信息在那里。
谢谢!