cednore / boom-controller
Laravel 的爆炸服务器控制界面
1.0.0
2022-04-11 19:11 UTC
Requires
- php: ^7|^8
- guzzlehttp/guzzle: ^6.3
- laravel/framework: ^5.7|^6.0
Requires (Dev)
- phpunit/phpunit: ~6.0
README
Laravel 的爆炸服务器控制界面
boom-controller
是一个用于 Laravel 应用控制 boom-server
微服务的 composer 包。
查看 boom-demo
了解此项目的示例用法。
目前,此项目仅支持
socket.io:^2.2.0
、laravel:^5.7|^6.0
和php:^7|^8
。
功能
- 暴露端点以监听来自前端客户端的
socket.io
事件 - PHP 类提供与
socket.io
的 Node.js 服务器相同的接口(便于旧应用的迁移) - 门面(Facade)提供流畅的语法
- 在
boom-server
和 API 之间进行流量认证 - 通过 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
项目路线图
- 迫切需要测试 ;-)
- 丰富的文档;更改日志、贡献指南、问题/PR 模板、GitHub 发布、专用文档网站
- 检查
boom-controller
和boom-server
之间的版本兼容性 - CI/CD 管道用于构建、测试和发布
- 支持更高版本的
socket.io
和laravel
- 更流畅的控制器语法
- 详细的错误处理
- Memcached 驱动程序
- 更稳定的数据库连接
- 微服务的 Docker 化
- 将
boom-server
和boom-controller
合并到单个 monorepo 中
许可证
此项目采用 MIT 许可证。请参阅 LICENSE
文件中的完整内容。