【问题标题】:Laravel: Pusher events do not broadcast from within eloquent's event listenerLaravel:Pusher 事件不会从 eloquent 的事件监听器中广播
【发布时间】:2016-12-06 03:46:40
【问题描述】:

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

订阅事件的js文件在控制器中放置相同的代码时监听事件没有问题。

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

【问题讨论】:

  • 您的服务器和本地机器的日期或其他信息可能未同步。你需要看看这个。 ntp.org

标签: php laravel events pusher


【解决方案1】:

原来是日期同步问题。

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

Ubuntu:

sudo ntpdate ntp.ubuntu.com

CentOS:

sudo ntpdate pool.ntp.org

【讨论】:

  • Windows 10 怎么样?
猜你喜欢
  • 1970-01-01
  • 2021-08-15
  • 1970-01-01
  • 1970-01-01
  • 2013-08-13
  • 2021-12-27
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
相关资源
最近更新 更多