2016-06-24 38 views
0

Ich habe versucht, Ereignis mit Pusher zu übertragen. Aber nach vielen Stunden Debugging habe ich immer noch keine funktionierende Lösung.Laravel 5.2 keine Ereignisse zu senden

Pusher funktioniert gut, es bekommt Ereignisse von der Debug-Konsole. Laravel feuert auch die Veranstaltung. Ich habe auch die Warteschlangen- und Broadcasting-Konfiguration eingerichtet, aber mir ist aufgefallen, dass mein Warteschlangen-Listener niemals eine Antwort erhält.

Das ist mein Event-Listener:

<?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); 
    } 
} 

Routen:

Route::get('event', function() { 
    event(new App\Events\SomeEvent()); 
    return "event fired"; 
}); 

Ereignis-Datei:

<?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']; 
    } 

} 

Edit: i Laravel neu installiert und jetzt die Warteschlange scheint zu reagieren und Erstellen Sie eine Zeile in der Jobtabelle. aber der Drücker empfängt immer noch keine Ereignisse von Laravel.

Antwort

0

Ihre App\Providers\EventServiceProvider muss auf die Ereignisse und Listener aufmerksam gemacht werden.

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

Diese können automatisch ausgefüllt werden, indem php artisan event:generate ausgeführt wird.

+0

bereits getan, das Ereignis wird richtig ausgelöst –