【发布时间】:2016-06-24 18:44:18
【问题描述】:
我尝试使用推送器广播事件。但是经过长时间的调试,我仍然没有一个可行的解决方案。
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 的任何事件。
【问题讨论】:
标签: events laravel-5.2 broadcast pusher