askedio/laravel-ratchet

为 Laravel 构建的 Ratchet 服务器

5.6.2 2018-11-07 16:19 UTC

This package is auto-updated.

Last update: 2024-09-18 07:36:08 UTC


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