我有一些事件,所有事件都实现了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.',
];
}
}