2016-06-24 6 views
0

プッシュでイベントをブロードキャストしようとしました。しかし、長い時間のデバッグの後、私はまだ実用的な解決策がありません。Laravel 5.2はイベントをブロードキャストしていません

プッシャーはうまく動作し、デバッグコンソールからイベントを取得しています。ララヴェルもこのイベントを起こしている。また、キューとブロードキャストの構成も設定しましたが、キューリスナーが応答を得られないことに気付きました。

これは私のイベントリスナーです:

<?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を再インストールし、現在キューが応答するようで、ジョブテーブルに行を作成します。プッシャーはまだララベルのイベントを受け付けていません。

答えて

0

あなたのApp\Providers\EventServiceProviderは、イベントとリスナーを認識する必要があります。

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

これらは、php artisan event:generateを実行すると自動的に取り込まれます。

+0

既にこれを行いました。イベントは正しく発生しています –

関連する問題