sysrandom/ratchet4laravel

为 Laravel 构建的 Ratchet 服务器

dev-main 2021-06-27 18:42 UTC

This package is auto-updated.

Last update: 2024-09-28 02:25:00 UTC


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.phpRatchetWampServer.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 服务器实例内接收消息,并确定如何路由它们。