serenade/live

服务器端事件

dev-main 2023-09-04 11:46 UTC

This package is auto-updated.

Last update: 2024-09-13 10:22:27 UTC


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 许可。