我试图用推播器播放活动。但经过长时间的调试后,我仍然没有可行的解决方案。
Pusher效果很好,它从调试控制台获取事件。 Laravel也在举办此次活动。我还设置了队列和广播配置,但我注意到我的队列侦听器从未得到任何响应。
这是我的事件监听器:
<?php
namespace App\Listeners;
use App\Events\SomeEvent;
use Illuminate\Contracts\Queue\ShouldQueue;
class EventListener implements ShouldQueue
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
}
/**
* Handle the event.
*
* @param SomeEvent $event
* @return void
*/
public function handle(SomeEvent $event)
{
//dd($event);
}
}
路线:
Route::get('event', function () {
event(new App\Events\SomeEvent());
return "event fired";
});
活动档案:
<?php
namespace App\Events;
use App\Events\Event;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class SomeEvent extends Event implements ShouldBroadcast
{
use SerializesModels;
public $data;
public $x = 1111;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct()
{
$this->data = array(
'power'=> '10'
);
}
/**
* Get the channels the event should be broadcast on.
*
* @return array
*/
public function broadcastOn()
{
return ['test_channel'];
}
}
编辑: 我重新安装了laravel,现在队列似乎响应并在作业表中创建行。但推动者仍然没有从laravel那里收到任何事件。
答案 0 :(得分:0)
您的App\Providers\EventServiceProvider
需要了解事件和听众。
protected $listen = [
App\Events\SomeEvent::class => [
App\Listeners\SomeListener::class,
],
];
可以通过运行php artisan event:generate
自动填充这些内容。