coreproc / nova-echo
将 Laravel Echo 与您的广播配置添加到 Laravel Nova 应用程序中
Requires
- php: >=7.1.0
README
将 Laravel Echo 与您的广播配置添加到 Laravel Nova 应用程序中。
安装
通过使用 Nova Echo,我们可以在 JS 中获得一个预先配置好的 Laravel Echo 实例。
以下是使用 websockets 进行广播/接收的推荐选项
您可以在 官方文档 中找到有关在 Laravel 中设置广播的说明。
一旦您在 Nova 应用程序中设置了此配置,您就可以通过 composer 安装此包
composer require coreproc/nova-echo
然后您需要覆盖 Nova 的 layout.blade.php
。创建一个布局文件 resources/views/vendor/nova/layout.blade.php
并从 vendor/laravel/nova/resources/views/layout.blade.php
中复制内容。
在 Nova 布局中包含 Nova Echo 的 blade 文件。此 blade 文件包含带有您的广播配置的 meta
标签。
// file: resources/views/vendor/nova/layout.blade.php <!DOCTYPE html> <html lang="en" class="h-full font-sans antialiased"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=1280"> <meta name="csrf-token" content="{{ csrf_token() }}"> @include('nova-echo::meta') <!-- Include this line --> <title> ...
使用方法
Nova Echo 实例化 Echo
并使其在您的 Nova 应用程序中可用。您可以通过
window.Echo
默认情况下,此 Echo
实例已订阅已登录用户的私有频道,默认情况下将是应用程序用户对象的命名空间,例如 App.User.{id}
。
您可以通过以下方式访问和附加到此用户的私有频道的事件监听器
window.userPrivateChannel
要使用此频道进行用户身份验证,请确保您有包含 Broadcast::routes()
声明的 BroadcastServiceProvider
。您还需要在您的 route/channels.php
文件中定义访问,例如
// file: routes/channels.php Broadcast::channel('App.User.{id}', function ($user, $id) { return (int)$user->id === (int)$id; });
您可以通过覆盖 receivesBroadcastNotificationsOn
来使用不同的频道名称。
class User extends Authenticatable { use Notifiable; ... /** * The channels the user receives notification broadcasts on. * * @return string */ public function receivesBroadcastNotificationsOn() { return 'users.' . $this->id; } }
变更日志
有关最近更改的更多信息,请参阅 变更日志。
贡献
请参阅 贡献指南 以获取详细信息。
安全性
如果您发现任何安全问题,请通过电子邮件 chris.bautista@coreproc.ph 联系我们,而不是使用问题跟踪器。
鸣谢
关于 CoreProc
CoreProc 是一家软件开发公司,为初创公司、数字/广告机构和企业提供软件开发服务。
在我们的 网站上 了解更多关于我们的信息。
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。