Laravel - 如何注册自定义广播者

2024-04-12

我想使用 BroadcastManager 注册自定义广播器,而无需更改内部框架代码......

现在我必须在Illuminate\Broadcasting\BroadcasterManager class:

protected function createMyCustomDriver(array $config) {
  // return instance....
}

然而,有一个扩展方法,但我不知道它是否适用于这个用例或如何使用它......

目标是使用 Broadcaster 实现,该实现使用 ZMQ 将这些广播事件发送到 WebSocket php 服务器实例。

任何帮助表示赞赏!

编辑:链接到 api 文档http://laravel.com/api/5.1/Illuminate/Broadcasting/BroadcastManager.html http://laravel.com/api/5.1/Illuminate/Broadcasting/BroadcastManager.html


你需要延长Illuminate\Broadcasting\BroadcastManager\BroadcastManager使用服务提供商。这与添加自定义防护非常相似,但这是一个超级基本的示例:

创建一个新的服务提供商,我称之为我的BroadcastServiceProvider,并将以下内容添加到boot method:

/**
 * Bootstrap the application services.
 *
 * @param BroadcastManager $broadcastManager
 */
public function boot(BroadcastManager $broadcastManager)
{
    $broadcastManager->extend('slack', function (Application $app, array $config) {
        return new Slack;
    });
}

所做的就是添加您的广播驱动程序(一个实现Illuminate\Contracts\Broadcasting\Broadcaster在我的示例中是接口Slack) 发送给广播管理员,并提供姓名slack(您可以随意称呼您的广播公司)。

确保您添加了该服务提供商app.php配置文件。

然后,在你的broadcasting.php配置文件将新驱动程序添加为连接。我的看起来像这样:

'connections' => [

    'pusher' => [
        'driver' => 'pusher',
        'key' => env('PUSHER_KEY'),
        'secret' => env('PUSHER_SECRET'),
        'app_id' => env('PUSHER_APP_ID'),
    ],

    'redis' => [
        'driver' => 'redis',
        'connection' => 'default',
    ],

    'log' => [
        'driver' => 'log',
    ],

    'slack' => [
        'driver' => 'slack'
    ]

],

您会注意到驱动程序名称与服务提供商中的名称相同extend称呼。您可以将连接称为您真正喜欢的任何名称,并且可以添加额外的参数,如果需要,这些参数将传递给服务提供者。

之后,您的自定义广播器已注册并可供使用!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel - 如何注册自定义广播者 的相关文章

随机推荐

  • 带有装饰器和会话的 django 类视图

    我正在尝试将一些 django 视图从基于函数的视图转换为基于类的视图 但遇到了一个小问题 我的面向对象有点弱 我认为问题是我已经不知道事情的进展情况 我有一个自定义的登录装饰器 我需要在视图上使用 所以我 首先我有这个例子中的 View
  • Android:扫描 Wifi 网络 + 可选列表

    我正在尝试创建一个应用程序 让您扫描可用的 wifi 网络 然后将它们显示在可选列表中 为此 我尝试使用以下代码 package android nacho WifiScan import java util List import and
  • 使用 asp.net MVC 包装器在 Kendo UI 网格中设置日期时间格式

    我想构建一个格式为日期 dd MM yyyy 的 Kendo UI 网格 但是 我发现的所有与此相关的问题都已通过代码解决格式 0 d 所以 我尝试过像下面的代码 GridBoundColumnBuilder
  • 使用 Entity Framework 7 的 Fluent-API 创建可选外键

    我正在尝试使用 Entity Framework 7 和 Fluent API 创建可选外键 在 EF v6 x 中 我们可以选择使用以下命令添加此内容 WithOptional or HasOptional 但我在 EF 7 中找不到任何
  • 在 matlab 中保存设置

    确实是个愚蠢的问题 但是最近我整天都在做一些项目 我的眼睛很疼 如何在 Matlab 中保存设置 准确地说是颜色设置 以便在白天过去和夜晚到来时可以重新加载它们 将它们互换为不同的设置 一个子问题 matlab 我认为在本例中为 2008b
  • 有人可以给出pluginaweek - statemachine 的活动记录示例吗?

    有人可以举一个简单的例子来说明如何使用插件周状态机 https github com pluginaweek state machine对于具有活动记录的票证模型 我不明白文档中的复杂示例 示例说明 新 gt 接受 拒绝 反馈 已接受 gt
  • 在 Swift 中创建 gif 动画时出现问题

    我正在尝试从 4 个数组创建一个动画 gifUIImageSwift 中的元素 但目前它只保存第一帧 let url NSURL fileURLWithPath photosDirectory URLByAppendingPathCompo
  • Apache OFBiz delegator API 是否支持按限制或偏移量从数据库获取记录列表

    假设我们只需从表中获取 5 条记录 但我的 where 子句匹配数据库中的 25k 条记录 那么有没有办法ofbiz框架只选择 5 条记录 而不是从数据库获取列表 然后从列表中只取出 5 条记录 如果限制不可能 因为ofbizAPI 与数据
  • 修改函数内“按值传递”的参数并将它们用作局部变量

    我见过一些代码 其中按值传递给函数的参数被修改或分配了新值 并且像局部变量一样使用 这是一件好事吗 这样做有什么陷阱吗 或者这样编码可以吗 本质上 函数的参数是一个局部变量 所以这种做法原则上还不错 另一方面 这样做可能会导致维护麻烦 如果
  • 如何编写一个可以读取 doc/docx 文件并将其转换为 txt 的 python 脚本?

    基本上我有一个包含大量 doc docx 文件的文件夹 我需要 txt 格式的文件 该脚本应该迭代目录中的所有文件 将它们转换为 txt 文件并将它们存储在另一个文件夹中 我该怎么做 是否存在可以执行此操作的模块 我认为这将是一个有趣的快速
  • 将 JSON 转换为 PowerShell 对象并将 PowerShell 转换回 JSON

    我将 JSON 从 Azure 资源组导出到 JSON 文件 如下所示 Export AzureRmResourceGroup ResourceGroupName SourceResourceGroupName Path filename
  • cocoa WebView中innerhtml和outerhtml的区别

    我在我的应用程序中使用 cocoa webview 进行富文本编辑 只是与 webkit 中提供的innerHtml 和outerHtml 方法混淆了 谁能解释一下有什么区别 DOMHTMLElement webView mainFrame
  • 为什么优秀的 UI 设计对于一些开发人员来说如此困难? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Java 两个独立键盘的独立输入

    我有两个 USB 键盘插入同一台机器 我正在开发一个 Java 应用程序 是否有办法允许 Java 应用程序分离出它来自哪个 USB 键盘 即是否有类似的东西http docs oracle com javase 6 docs api ja
  • ajax提交表单为什么不能回显$_POST

    我正在使用ajax提交表单进行测试 提交给我自己的页面 new1 php 我想要的是 单击提交按钮后 它将回显名字和姓氏 但我不知道为什么提交后看不到名字和姓氏 这是new1 php页面
  • Zend Framework 2 - 如何包含库中的部分内容

    我写了一个部分 我想在几个模块中使用它 我认为最好的方法是将其放入我的自定义库中 但不幸的是 我无法找到一种方法来包含这个部分 而不使用像这样的非常难看的路径 echo this gt partial vendor myvendor lib
  • HTML5同页导航

    我在 html5 中遇到导航问题 我看了很多教程 我不知道我做错了什么 我想在同一页面上导航
  • Dropbox 是一个有效的快速但肮脏的源代码控制解决方案吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • ADB 错误:无法连接到守护程序

    我需要帮助才能让 ADB 在我的 PC win7 64 位 和 Samsung Galaxy S2 上运行 我已经安装了 Kies 附带的驱动程序 我想是在子文件夹 25 escape 下 驱动程序在设备管理器下正确显示为 Samsung
  • Laravel - 如何注册自定义广播者

    我想使用 BroadcastManager 注册自定义广播器 而无需更改内部框架代码 现在我必须在Illuminate Broadcasting BroadcasterManager class protected function cre