【问题标题】:Laravel 5.2 not broadcasting eventsLaravel 5.2 不广播事件
【发布时间】: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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-10-03
      • 1970-01-01
      • 2020-07-28
      • 1970-01-01
      • 2016-06-12
      • 2017-05-04
      • 1970-01-01
      • 2023-03-04
      相关资源
      最近更新 更多