为什么触发了Laravel中的某些特定事件但没有广播?

时间:2019-05-14 06:23:17

标签: laravel-5.7 pusher-js

我有一些事件,所有事件都实现了ShouldBroadcastNow接口,并且还设置了它们各自的侦听器。除1外,所有事件均被正确触发和广播。其侦听人员均被触发,因此我想这与事件本身有关。

值得注意的是,这不会在我的本地发生,而只会在生产服务器上发生。

如果有帮助,我的生产环境和本地环境都使用Laravel 5.7运行php7.1。我尝试过更改其事件名称,还尝试使用Pusher控制台发送确切的事件名称和通道,而我的前端程序可以捕获该事件名称和通道。

这是不播放的事件:

class OrderStatusChanged implements ShouldBroadcastNow {
    use Dispatchable, InteractsWithSockets, SerializesModels;

    public $cart;
    public function __construct(Cart $cart) {
        $this->cart = $cart;
    }

    public function broadcastOn() {
        return 'channel-admin-notification';
    }

    public function broadcastAs() {
        return 'order-status';
    }

    public function broadcastWith() {
        return [
            'title' => 'Cart status updated',
            'description' => 'Your cart status has changed',
        ];
    }
}

以下是可以正确广播的事件:

class UserRegistered implements ShouldBroadcastNow {
    use Dispatchable, InteractsWithSockets, SerializesModels;

    public $user, $data;

    public function __construct($user, $data) {
        $this->user = $user;
        $this->data = $data;
    }

    public function broadcastOn() {
        return 'channel-admin-notification';
    }

    public function broadcastAs() {
        return 'user-registered';
    }

    public function broadcastWith() {
        return [
            'title' => 'New user registered',
            'description' => 'A new user has just registered.',
        ];
    }
}

0 个答案:

没有答案