Laravel:Pusher 事件不从 eloquent 的事件侦听器中广播

Laravel: Pusher events do not broadcast from within eloquent's event listener

我在 Eloquent 事件侦听器中使用 Pusher 进行事件广播时遇到问题。我的事件被触发并从 Laravel 控制器完美发送出去。但是,当我从我的 Eloquent 事件侦听器中触发广播时,它们似乎并没有真正到达推送器。

我的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;
});

同样的代码放在controller中时,订阅事件的js文件监听事件没有问题

另请注意,doSomeStuf()doSomeOtherStuf() 执行得很好,没有抛出异常。

原来是日期同步问题。

我的本地服务器是一台 Ubuntu 机器,而我的实时服务器是 运行 CentOS 机器。 运行 以下命令解决了问题:

Ubuntu:

sudo ntpdate ntp.ubuntu.com

CentOS:

sudo ntpdate pool.ntp.org