2016-07-20 13 views
0

Ich kann nicht sehen, um herauszufinden, warum broadcastOn() nicht auslöst. Hier ist mein Code:Laravel 5.2 Event Broadcast nicht triggern

<?php 

namespace App\Events; 

use Illuminate\Queue\SerializesModels; 
use Illuminate\Contracts\Broadcasting\ShouldBroadcast; 

class NotificationEvent extends Event implements ShouldBroadcast{ 
    use SerializesModels; 

    /** 
    * Create a new event instance. 
    * 
    * @return void 
    */ 
    public $message; 
    public $user; 
    public function __construct($user_id,$message){ 
      $this->user = $user_id; 
      $this->message = $message; 
    } 

    /** 
    * Get the channels the event should be broadcast on. 
    * 
    * @return array 
    */ 
    public function broadcastOn() 
    { 
     //var_dump("Sending event to:".'userNotifications.'.$this->user_id); 
     //return ['userNotifications.'.$this->user_id]; 
     \Log::info("broadcast notification"); 
     \Log::info($this->message); 
     return ['notifications']; 
    } 
} 

Logging in dem _construct funktioniert, aber die Protokollierung in broadcastOn() funktioniert nicht.

Meine .env Datei gesetzt Redis ist Redis-Server auf und lauscht auf Port 3001.

Weiß jemand, warum dies jetzt funktionieren könnte?

Antwort

1

Die eigentliche Sendung ist ein Job. Suchen Sie in Ihrer Laravel-Jobwarteschlange. Wenn der Job über php artisan queue:work ausgeführt wird, wird die Methode broadcastOn() ausgelöst.

+0

Danke, das ist mir nie klar geworden. Ein nicht aktualisierter Warteschlangenarbeiter gab mir Kopfschmerzen :-) –