2016-08-01 24 views
1

Ich habe Probleme beim Senden von Ereignissen mit Pusher aus einem Eloquent-Ereignis-Listener. Mein Event wird gefeuert und perfekt von Laravel-Controller gesendet. Es sieht jedoch so aus, als ob die Sendungen nicht wirklich den Pusher erreichen, wenn ich sie aus meinem Eloquent Event Listener trigge.Laravel: Pusher-Ereignisse werden nicht aus dem Ereignis-Listener von eloquent gesendet.

Die boot Methode meiner app/Providers/AppServiceProvider.php enthält:

MyModel::saving(function($record){ 
    doSomeStuf(); 

    // trigger event 
    $pusher = \App::make('pusher'); 
    $channel = $record->username; 
    $pusher->trigger($channel, 'status-changed', $record); 

    doSomeOtherStuf(); 

    return true; 
}); 

Die js-Datei, die auf das Ereignis abonniert hat kein Problem, auf das Ereignis zu hören, wenn der gleiche Code in einer Steuerung platziert ist.

Beachten Sie auch, dass doSomeStuf() und doSomeOtherStuf() sehr gut ausgeführt werden und keine Ausnahme ausgelöst wird.

+1

Ihre Daten oder andere Informationen von Server und lokalen Maschinen möglicherweise nicht synchronisiert werden. Sie müssen sich das ansehen. http://www.ntp.org/ –

Antwort

2

Es stellte sich heraus, dass es sich um ein Datumssynchronisierungsproblem handelte.

Mein lokaler Server ist ein Ubuntu-Rechner, während mein Live-Server auf CentOS läuft. Ausführen der folgenden Befehle das Problem gelöst:

Ubuntu:

sudo ntpdate ntp.ubuntu.com

CentOS:

sudo ntpdate pool.ntp.org