这是我第一次使用pusher(pusher.com(,在本地一切都很好,但在生产发送通知时不起作用,如果我从本地发送,它起作用,并向生产发送通知,但从现场发送,它不起作用!!!
广播:
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster'=> env('CLUSTER'),
'encrypted' => true,
],
],
发送功能:
public function OrderEvent()
{
$order_number='150';
event(new OrderSubmitted($order_number));
return "We just sent!";
}
生产错误:
production.INFO: Broadcasting [AppEventsOrderSubmitted] on channels [order-submitted] with payload:
{
"order_number": "15-EA",
"socket": null
}
这是因为我的broadcast_driver在.env文件中设置为log
。将.env
中的广播驱动程序从log
更改为pusher
BROADCAST_DRIVER=pusher
然后,在生产服务器上运行此命令。
php artisan config:clear
如果您没有在pusher上验证您的电子邮件,则通常会发生这种情况。
如果你已经做到了,请确保你的配置文件中有这个。(broadcasitng.php(
'options' => [
'cluster' => 'ap2',
'encrypted' => true
],
如果以上都不起作用,很可能是您的主机名配置错误。请记住从主机中排除http/https
。这不是https://example.com
,而是example.com
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => env('PUSHER_APP_CLUSTER'),
'encrypted' => true,
'host' => env('PUSHER_HOST'),
'port' => 6001,
'scheme' => env('PUSHER_SCHEME')
],
],
和带有的.env
文件
PUSHER_HOST=example.com