sysrandom / ratchet4laravel
为 Laravel 构建的 Ratchet 服务器
dev-main
2021-06-27 18:42 UTC
Requires
- php: >=7.2.0
- ext-zmq: *
- cboden/ratchet: ^0.4.3
- graham-campbell/throttle: ^7.4|^8.1
- illuminate/console: ~6.0|~7.0|~8.0
- illuminate/support: ~6.0|~7.0|~8.0
- react/zmq: 0.2.*|0.3.*|0.4.*
README
此包允许您在 Laravel 应用程序中创建和运行一个完全功能的 WebSocket 服务器。它可以选择接收通过 ZeroMQ 广播的消息。
要求
- PHP 7.1+
- Laravel 5.5+
- ZeroMQ
- PHP 的 ext-zmq 扩展
安装
$ composer require sysrandom/ratchet4laravel
在 Laravel 5.5 中,服务提供程序会自动通过包自动发现加载。
发布供应商文件,以便您可以配置服务器默认设置。
$ php artisan vendor:publish --provider="Askedio\LaravelRatchet\Providers\LaravelRatchetServiceProvider"
启动服务器
安装完成后,启动标准 WebSocket 服务器的最快方式是简单地运行
$ php artisan ratchet:serve --driver=WsServer
这将运行一个基于 src/Examples/Pusher.php
的简单示例服务器。
您还可以创建 WampServer 或 IoServer。使用命令中的 --help
选项获取更多信息。
您应该在 app
文件夹内创建自己的服务器类,通过扩展 Ratchet 核心服务器类之一: RatchetWsServer.php 或 RatchetWampServer.php。
然后更新您的 config/ratchet.php
文件,以便指向您的服务器 class
。
与 Laravel 广播一起使用
要使用您创建的服务器中的广播功能,您需要 Laravel 的 ZeroMQ 广播驱动程序(例如 这个)。
您还需要告诉 Ratchet 服务器绑定到 ZeroMQ 套接字。您可以通过传递 -z
选项来完成此操作,即
$ php artisan ratchet:serve --driver=WsServer -z
这将连接到您在 config/ratchet.php
设置中定义的套接字,并监听 ZeroMQ 的消息。
要处理通过 ZeroMQ 发布的消息,只需在您的服务器类中添加一个 public function onEntry($messages)
方法。这将允许您在 Ratchet 服务器实例内接收消息,并确定如何路由它们。