askedio / laravel-ratchet
为 Laravel 构建的 Ratchet 服务器
5.6.2
2018-11-07 16:19 UTC
Requires
- php: >=7.1.0
- ext-zmq: *
- cboden/ratchet: ^0.4
- graham-campbell/throttle: ^7.0
- illuminate/console: ^5.5
- illuminate/support: ^5.5
- react/zmq: 0.2.*|0.3.*
README
此包使您能够在 Laravel 应用程序中创建和运行一个完整的 WebSocket 服务器。它可以选择接收通过 ZeroMQ 广播的消息。
要求
- PHP 7.1+
- Laravel 5.5+
- ZeroMQ
- PHP 的 ext-zmq 扩展
安装
$ composer require askedio/laravel-ratchet
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 应用程序中启用广播,您需要一个 Laravel 的 ZeroMQ 广播驱动器(例如 此驱动器)。
您还需要告诉 Ratchet 服务器绑定到 ZeroMQ 套接字。您可以通过传递 -z
选项来完成此操作,例如:
$ php artisan ratchet:serve --driver=WsServer -z
这将连接到您在 config/ratchet.php
设置中定义的套接字,并监听来自 ZeroMQ 的消息。
要处理通过 ZeroMQ 发布的消息,只需在您的服务器类中添加一个 public function onEntry($messages)
方法。这将允许您在 Ratchet 服务器实例中接收消息,并确定如何路由它们。