← 专题

Laravel Reverb 托管方式:Laravel Cloud、自己的服务器或托管服务

Laravel 应用的 WebSocket 可以跑在哪里:Laravel Cloud 的托管 Reverb、Forge 或 Docker 服务器上的 Reverb,或兼容 Pusher 的托管服务。价格与各自留给你的工作。

Laravel Reverb 是为 Laravel 打造的 WebSocket 服务器,使用 Pusher 协议。所以 Laravel 应用的 WebSocket 有三个地方可以跑:Laravel Cloud 的托管 Reverb、你自己管理的服务器上的 Reverb,或兼容 Pusher 的托管服务。三者的广播事件、routes/channels.php 和 Laravel Echo 代码都一样;不同的是价格,以及留给你的工作。

三种选项

Laravel Cloud

你的 Laravel 应用在 Laravel Cloud 上
REVERB_ 变量
托管 Reverb你选的区域

你自己的服务器

你的 Laravel 应用
reverb 驱动
ReverbSupervisor、Nginx、ulimit
Redis
更多 Reverb 服务器

托管服务

你的 Laravel 应用放在任何地方
pusher 驱动
Hibira香港
同样的 Laravel 代码,三个跑 WebSocket 的地方

Laravel Cloud 的托管 Reverb

Laravel Cloud 可以从控制台创建 Reverb 集群:选区域和连接大小,把集群挂到环境上,Cloud 就会注入 REVERB_ 变量。一个集群可以分给多个应用使用。

每个档位的消息大小上限都是 10 KB,另外还要付 Laravel Cloud 本身的方案费用(每月 5 美元起加用量)。数字取自 Laravel Cloud 的价格文档与其 WebSockets 文档,查询日期 2026-10-26。

应用已经在 Laravel Cloud 上的话,这是最简单的选择。放在其他地方的应用则不能用。

自己服务器上的 Reverb

Reverb 是免费软件,成本是服务器和时间。Reverb 文档列出正式环境需要的东西:

  • 用 Supervisor 之类的进程管理器,让 php artisan reverb:start 持续运行。
  • 前面放 Nginx 之类的反向代理,负责 TLS。
  • 提高可打开的文件数上限,因为每条连接都占一个文件描述符;超过约 1,000 条连接时改用 ext-uv 事件循环。
  • 跑超过一台 Reverb 服务器时,需要 Redis 和 REVERB_SCALING_ENABLED=true,前面再加负载均衡器。

Forge 可以在它管理的服务器上设置 Reverb 守护进程,省掉前三项的大部分工作。监控、升级和宕机时半夜被叫起来,仍然是你的事。

适合已经有在运维服务器和监控的团队,或是广播事件必须留在自家基础设施内的应用。

兼容 Pusher 的托管服务

Laravel 的 pusher 广播驱动可以连任何使用 Pusher 协议的服务。在 .env 设好主机、把 Echo 指过去,不论你的应用放在哪里,WebSocket 服务器都由服务代管。

App 页面上的 App ID、key 与 secret
App 页面上的 App ID、key 与 secret

以 Hibira 为例,免费方案有 100 条连接、每天 20 万则消息;付费方案每月 19 美元起,500 条连接、每天 100 万则发布消息。一次发布不论送给多少订阅者都只算一次。服务器在香港,适合东亚与东南亚的用户。细节与代码见与 Laravel Reverb 的比较和 Laravel Echo 指南。

怎么选

  • 应用在 Laravel Cloud 上:用托管 Reverb,除非你的用户离它提供的区域太远。
  • 已经在运维服务器,也不想经过第三方:在自己的服务器上跑 Reverb。
  • 应用在 VPS、共享主机、Vapor 或其他平台上,又不想运维 WebSocket 服务器:用兼容 Pusher 的托管服务。

之后要换,只要改 BROADCAST_CONNECTION 和几个 .env 值。

常见问题

不用 Laravel Cloud 也能用 Laravel Reverb 吗?

可以。Reverb 是开源软件,任何能跑 PHP 的服务器都能用。Laravel Cloud 只是为放在它上面的应用提供托管版本。

托管的 Laravel Reverb 要多少钱?

在 Laravel Cloud 上,100 条同时连接每月 5 美元,到 5,000 条每月 200 美元,另外加上 Laravel Cloud 本身的方案费用。

Laravel Reverb 一定要 Redis 吗?

只有跑超过一台 Reverb 服务器时才需要:Redis 负责在服务器之间分享消息。单台 Reverb 服务器不需要。

产品名称为其所有者的商标。