2016-08-01 62 views
1

我遇到的问题是使用Pusher从一个Eloquent事件监听器中进行事件广播。我的活动正在被解雇并完美地从Laravel控制器发出。但是,当我从我的Eloquent事件监听器中触发它们时,似乎广播实际上并没有达到推动者的程度。Laravel:推送事件不会从内部通知的事件监听器中广播

app/Providers/AppServiceProvider.phpboot方法包括:在相同的代码放在一个控制器

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

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

    doSomeOtherStuf(); 

    return true; 
}); 

订阅了该事件的js文件没有问题听取事件。

另请注意,doSomeStuf()doSomeOtherStuf()执行得相当好,并且不会引发异常。

+1

日期或服务器和本地机器的其他信息可能不同步。你需要看看这个。 http://www.ntp.org/ –

回答

2

原来是日期同步问题。

我的本地服务器是Ubuntu机器,而我的活服务器在CentOS上运行。运行以下命令解决了这个问题:

Ubuntu的:

sudo ntpdate ntp.ubuntu.com

的CentOS:

sudo ntpdate pool.ntp.org