Laravel 5.2不播放活动

时间:2016-06-24 18:44:18

标签: events laravel-5.2 broadcast pusher

我试图用推播器播放活动。但经过长时间的调试后,我仍然没有可行的解决方案。

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那里收到任何事件。

1 个答案:

答案 0 :(得分:0)

您的App\Providers\EventServiceProvider需要了解事件和听众。

protected $listen = [
    App\Events\SomeEvent::class => [
        App\Listeners\SomeListener::class,
    ],
];

可以通过运行php artisan event:generate自动填充这些内容。