Laravel Echo 500 错误未收到推送事件
Posted
技术标签:
【中文标题】Laravel Echo 500 错误未收到推送事件【英文标题】:Laravel Echo 500 error not receiving pusher event 【发布时间】:2017-06-14 01:02:09 【问题描述】:我在 Laravel Echo 中使用带有推送器的存在通道时遇到了问题。当我触发一个事件时,我从BroadcastException
收到 500 错误,而没有响应体,这对我来说很难调试。当我查看推送器调试控制台时,推送器监听了存在事件。所以我假设我的事件从未被推送给 Pusher。这是我的网络标签中的预览
我的控制器:
public function store()
$user = auth()->user();
$message = $user->messages()->create([
'message' => request('message')
]);
event(new MessageReceived($message, $user));
return ['status' => 'OK'];
MessageReceived
类
namespace App\Events;
class MessageReceived implements ShouldBroadcast
use Dispatchable, InteractsWithSockets, SerializesModels;
public $message;
public $user;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct(Message $message, User $user)
$this->message = $message;
$this->user = $user;
/**
* Get the channels the event should broadcast on.
*
* @return Channel|array
*/
public function broadcastOn()
return new PresenceChannel('chatroom');
这是我的 vuejs
mounted()
axios.get('/messages')
.then(response =>
this.messages = response.data
)
.catch(error =>
console.log(error)
)
Echo.join('chatroom')
.listen('MessageReceived', (e) =>
console.log(e) //never get into this
)
,
我找不到错误在哪里。我使用集群 ap1 并在 broadcasting.php
和我的 bootstrap.js
中声明。谁能帮帮我?
【问题讨论】:
【参考方案1】:这可能是由您的配置错误引起的。以下是一些需要检查的事项:
-
在您的
.env
文件中,确保正确设置了推送者 ID、密钥和密码。
如果你从 Laravel 5.3 升级到 Laravel 5.4,请注意 .env
变量 PUSHER_KEY
现在是 PUSHER_APP_KEY
和 PUSHER_SECRET
现在是 PUSHER_APP_SECRET
在您的config/broadcasting.php
中,确保集群设置正确。
如果您不在 HTTPS 中,您可能需要将 'encrypted
密钥设置为 false
'options' => [
'cluster' => 'ap1', // change this to your app's cluster
'encrypted' => false,
],
【讨论】:
是的,在我的情况下,当我在 localhost xampp 上运行它时导致问题的数字 4 @ishadif 太好了!如果您发现我的回答有帮助或正确,希望您将其标记为已接受的答案。谢谢! 其实我早就解决了这个问题。但我认为您的回答会帮助遇到类似问题的其他人。 对我没用 :'(,我看到有些人删除了'encrypted' => false,
的部分并让它工作但也没有帮助我......我不知道该怎么做做..以上是关于Laravel Echo 500 错误未收到推送事件的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Echo Server 给出错误未处理错误事件:错误:连接 ECONNREFUSED
为啥我在作曲家安装后在 Laravel 中收到 500 服务器错误 [关闭]