serenade / live
服务器端事件
dev-main
2023-09-04 11:46 UTC
Requires
- laravel/framework: ^10.0
Requires (Dev)
- laravel/pint: ^1.12
- orchestra/testbench-core: ^8.0
- orchestra/testbench-dusk: ^8.0
- phpunit/php-code-coverage: ^10.0
- phpunit/phpunit: ^10.0
- vimeo/psalm: ^4.3 || ^5.0
README
Serenade 是一个 Laravel 扩展包,可以轻松地将 服务器端事件 添加到您的应用程序中。使用 Serenade,您可以快速轻松地将实时更新和事件流式传输到用户,无需额外的库或外部依赖。
特性
- 创建和流式传输事件的简单直观 API。
- 与支持服务器端事件的任何现代浏览器兼容。
- 完全支持 Laravel 内置的排队系统,以实现高效的广播。
- 轻松集成事件与 Laravel 的认证系统。
- 简单配置和设置,方便集成到现有的 Laravel 应用程序中。
安装
要安装 Serenade,请简单地使用 Composer
composer require esplora/serenade
使用方法
使用 Serenade 简单直观。以下是一个发送简单事件的示例
//...
配置
您应用程序的所有事件广播配置都存储在 config/broadcasting.php
配置文件中。相应地添加以下行
/* |-------------------------------------------------------------------------- | Broadcast Connections |-------------------------------------------------------------------------- | | Here you may define all of the broadcast connections that will be used | to broadcast events to other systems or over websockets. Samples of | each available type of connection are provided inside this array. | */ 'connections' => [ 'serenade' => [ 'domain' => '', 'prefix' => '', 'route' => 'serenade', 'middleware' => 'web', ], ],
订阅
通过网页浏览器或任何支持服务器端事件的平台订阅更新非常简单
const url = new URL('https://localhost/.well-known/serenade/your.channel'); const eventSource = new EventSource(url); // The callback will be called every time an update is published eventSource.onmessage = e => console.log(e); // do something with the payload
这将创建一个名为 example 的新事件,消息为 Hello, World!对于更高级的使用,包括授权和排队,请参阅官方文档。
许可
Serenade 是开源软件,许可协议为 MIT 许可。