Laravel 中的服务器发送事件

Posted

技术标签:

【中文标题】Laravel 中的服务器发送事件【英文标题】:Server Sent Events in Laravel 【发布时间】:2020-03-31 14:15:28 【问题描述】:

我想在 Laravel 中使用 Server Sent 事件而不是 websockets。如何将服务器发送的事件与 Laravel 事件广播功能挂钩?如果可能的话,我想保持与在 Laravel 中使用 websocket 类似的体验。是否也可以继续使用 Pusher 频道?

【问题讨论】:

【参考方案1】:

websockets 的好处是它允许您将实时更新从后端中继到前端,并使客户端事件实时出现。因此我会说你需要 websockets。根据我自己的经验,Pusher 非常适合这一点。

【讨论】:

您认为 websockets 是否仍然适用于不太频繁的事件,以及仅源自服务器而不是反之亦然的事件?我已经阅读了有关 websockets 遇到防火墙问题和手机电池耗尽的问题。您认为这些是 2020 年真正的问题吗? Websockets 是为了促进发生在客户端的事件。假设你在交易所卖东西。 Websockets 确保如果有人购买您的产品,其他人可以实时看到该购买,以防止信息陈旧。相反,服务器端事件用于向您发送一封电子邮件,确认有人购买了您的产品。服务器端事件用于从服务器发出并需要服务器广播它们的事件。 关于防火墙和电池。我不太确定,我只能猜测,但我会争辩说 websockets 会消耗更多的电池——尽管我不太确定吃多少。因为它要求您的设备不断订阅频道并监听传入事件。需要额外的处理能力等。

以上是关于Laravel 中的服务器发送事件的主要内容,如果未能解决你的问题,请参考以下文章

是否可以检查(服务器端)是否占用了 laravel-websockets 通道?

EventSource 中的 HTTP 授权标头(服务器发送事件)

FullCalendar 客户端事件发送到 Laravel 控制器

我正在向 laravel 中的控制器发送一个发布请求,但它显示 500 错误

Spring中的服务器发送事件客户端示例

Laravel6使用事件监听发送消息通知