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_KEYPUSHER_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 没有收到更多事件

Laravel echo 未收到事件

Laravel Echo Server 给出错误未处理错误事件:错误:连接 ECONNREFUSED

为啥我在作曲家安装后在 Laravel 中收到 500 服务器错误 [关闭]

Laravel Echo 在 Laravel 8-vue js "^2.5.17" 版本中没有收到 Pusher 事件

Laravel 5.8 Class'App Http Controllers Auth Verified'未找到