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 控制器