cednore/boom-controller

Laravel 的爆炸服务器控制界面

1.0.0 2022-04-11 19:11 UTC

This package is auto-updated.

Last update: 2024-09-12 00:29:29 UTC


README

Laravel 的爆炸服务器控制界面

boom-controller 是一个用于 Laravel 应用控制 boom-server 微服务的 composer 包

查看 boom-demo 了解此项目的示例用法。

目前,此项目仅支持 socket.io:^2.2.0laravel:^5.7|^6.0php:^7|^8

功能

  1. 暴露端点以监听来自前端客户端的 socket.io 事件
  2. PHP 类提供与 socket.io 的 Node.js 服务器相同的接口(便于旧应用的迁移)
  3. 门面(Facade)提供流畅的语法
  4. boom-server 和 API 之间进行流量认证
  5. 通过 MySQL 表进行状态机,以共享套接字列表

安装

# Install cednore/boom-controller package
composer require cednore/boom-controller

# Create config, route and default controller for root namespace
php artisan boom:init

# Start development server
php artisan serve

发射速查表(比较旧版 JavaScript 语法和新版 PHP 语法)

基本发射

socket.emit(/* ... */);
$request->socket->emit(/* ... */);

发送到当前命名空间中所有客户端(除发送者外)

socket.broadcast.emit(/* ... */);
$request->socket->broadcast->emit(/* ... */);

发送到 room1 中所有客户端(除发送者外)

socket.to('room1').emit(/* ... */);
$request->socket->to('room1')->emit(/* ... */);

发送到 room1 和/或 room2 中所有客户端(除发送者外)

socket.to('room1').to('room2').emit(/* ... */);
$request->socket->to('room1')->to('room2')->emit(/* ... */);

发送到 room1 中所有客户端

io.in('room1').emit(/* ... */);
use Boom\Facades\Boom as IO;
IO::in('room1')->emit(/* ... */);

发送到命名空间 "myNamespace" 中所有客户端

io.of('myNamespace').emit(/* ... */);
use Boom\Facades\Boom as IO;
IO::of('myNamespace')->emit(/* ... */);

发送到命名空间 "myNamespace" 中 room1 的所有客户端

io.of('myNamespace').to('room1').emit(/* ... */);
use Boom\Facades\Boom as IO;
IO::of('myNamespace')->to('room1')->emit(/* ... */);

发送到单个 socketid(私信)

io.to(socketId).emit(/* ... */);
use Boom\Facades\Boom as IO;
IO::to($socketId)->emit(/* ... */);

发送到此节点上的所有客户端(当使用多个节点时)

io.local.emit(/* ... */);
use Boom\Facades\Boom as IO;
IO::$local->emit(/* ... */);

发送到所有已连接客户端

io.emit(/* ... */);
use Boom\Facades\Boom as IO;
IO::emit(/* ... */);

不进行压缩

socket.compress(false).emit(/* ... */);
$request->socket->compress(false)->emit(/* ... */);

如果低级传输不可写入,可能会丢失的消息

socket.volatile.emit(/* ... */);
$request->socket->volatile->emit(/* ... */);

配置

文件 config/boom.php 包含一个配置数组。请参阅该文件内的代码注释以获取详细说明。

Artisan 命令

命令: boom:init

初始化 boom 控制器。

用法

php artisan boom:init [options]

选项

--force  Overwrite any existing files.

命令: boom:make:nsp

创建一个新的 socket.io 命名空间处理器。

用法

php artisan boom:make:nsp [options] [--] <name>

参数

name  Name of new namespace to create.

选项

--force  Overwrite any existing files.

克隆

以下说明将帮助您在本地机器上获取项目的副本,并用于开发和测试。有关如何在实时系统中使用此项目的说明,请参阅 安装 章节。

# Clone this repo
git clone git@github.com:cednore/boom-controller.git
cd boom-controller

项目路线图

  1. 迫切需要测试 ;-)
  2. 丰富的文档;更改日志、贡献指南、问题/PR 模板、GitHub 发布、专用文档网站
  3. 检查 boom-controllerboom-server 之间的版本兼容性
  4. CI/CD 管道用于构建、测试和发布
  5. 支持更高版本的 socket.iolaravel
  6. 更流畅的控制器语法
  7. 详细的错误处理
  8. Memcached 驱动程序
  9. 更稳定的数据库连接
  10. 微服务的 Docker 化
  11. boom-serverboom-controller 合并到单个 monorepo 中

许可证

此项目采用 MIT 许可证。请参阅 LICENSE 文件中的完整内容。