fanout / laravel-grip
Laravel 的 GRIP
Requires
- fanout/grip: ^1.1.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.5
- ramsey/uuid: ^4.2
This package is auto-updated.
Last update: 2024-09-16 00:16:27 UTC
README
为 Laravel 提供的 GRIP 库,以 Laravel 包的形式提供。
最低支持的 Laravel 版本是 7.0,但它可能与旧版本兼容。
支持的 GRIP 服务器包括
此库还支持由 Fanout 云托管的旧版服务。
作者:Katsuyuki Omuro komuro@fastly.com,Madeline Boby maddie.boby@fastly.com
简介
GRIP 是一种协议,它允许网络服务使用 HTTP 和头部将实时推送行为委托给代理组件。
laravel-grip
解析任何请求中的 Grip-Sig
头部,以检测它们是否通过 GRIP 代理传入,并为您的路由处理程序提供处理此类请求的工具。这包括访问有关当前请求是否代理或签名的信息,以及向 GRIP 代理发出任何保持指令的方法。
此外,laravel-grip
还处理 WebSocket-Over-HTTP 处理,以便由 GRIP 代理管理的 WebSocket 连接可以由您的路由处理程序控制。
安装
安装库。
composer require fanout/laravel-grip
这将通过 Composer 的提供者机制将库以及中间件安装到您的 Laravel 应用程序的堆栈中。
配置
可以通过向 Laravel 应用程序添加名为 ./config/grip.php
的文件来配置 laravel-grip
。它看起来像这样
<?php return [ 'grip' => /* string, array, or array of arrays */, 'prefix' => /* string. defaults to the empty string */, 'grip_proxy_required' => /* boolean, defaults to false */, ];
可用选项
grip
参数可以是以下任何一种
- 具有以下字段的对象
-
此类对象的数组。
-
GRIP URI,它是一个字符串,将上述内容编码为单个字符串。
处理路由
中间件将自动安装到您的所有路由之前。
当您的路由运行时,您将能够访问以下外观:Grip
、GripInstruct
、GripPublisher
和 GripWebSocket
。
Grip
将在所有请求中可用,而其他外观仅在配置和当前请求适用的情况下可用。
Grip
外观提供了以下功能
当当前请求是代理时,则 GripInstruct
外观可用,并提供了与 fanout/grip
中的 GripInstruct
相同的功能。
当当前请求通过 WebSocket-over-HTTP 调用时,则 GripWebSocket
外观可用,并提供了与 fanout/grip
中的 WebSocketContext
相同的功能。
要发布消息,请使用 GripPublisher
外观。它提供了与 fanout/grip
中的 Publisher
相同的功能。使用它来发布使用 ./config/grip.php
文件中指定的端点和前缀的消息。
示例
此存储库包含在 examples
目录中找到的 laravel-grip
用法的示例。有关每个示例的详细信息,请阅读相应目录中的 README.md
文件。
测试
使用以下命令运行测试
./vendor/bin/phpunit