Php Laravel-如何注册自定义广播公司

Php Laravel-如何注册自定义广播公司,php,laravel-5.1,Php,Laravel 5.1,我想在BroadcastManager中注册一个自定义广播公司,而不必更改内部框架代码 现在,我必须在illumb\Broadcasting\Broadcasting-manager类中执行类似操作: protected function createMyCustomDriver(array $config) { // return instance.... } 然而,有一个扩展方法,但我不知道它是否适合这个用例,或者如何使用它 目标是使用广播器实现,该实现使用ZMQ将这些广播事件发送到W

我想在BroadcastManager中注册一个自定义广播公司,而不必更改内部框架代码

现在,我必须在
illumb\Broadcasting\Broadcasting-manager
类中执行类似操作:

protected function createMyCustomDriver(array $config) {
  // return instance....
}
然而,有一个扩展方法,但我不知道它是否适合这个用例,或者如何使用它

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

感谢您的帮助


编辑:链接到api文档

您需要使用服务提供商扩展
illighted\Broadcasting\BroadcastManager\BroadcastManager
。这与添加自定义防护非常相似,但这里有一个超级基本的示例:

创建一个新的服务提供商,我调用了我的
BroadcastServiceProvider
,并将以下内容添加到
boot
方法中:

/**
 * Bootstrap the application services.
 *
 * @param BroadcastManager $broadcastManager
 */
public function boot(BroadcastManager $broadcastManager)
{
    $broadcastManager->extend('slack', function (Application $app, array $config) {
        return new Slack;
    });
}
只需将您的广播驱动程序(一个实现
illighted\Contracts\Broadcasting\Broadcasting
接口的类,在我的示例中是
Slack
)添加到名为
Slack
的广播管理器中(您可以随意调用您的广播者)

确保将此服务提供商添加到您的
app.php
config文件中

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

'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
call中的名称相同。您可以调用任何您真正喜欢的连接,并且可以添加额外的参数,如果您需要这些参数,这些参数将被传递到服务提供商


之后,您的自定义广播已注册并准备好使用

这已经不起作用了$应用程序不幸地被传递到BroadcastManager::_construct()。好的,我的错。它在内腔中不起作用。现在,参数$broadcastManager被删除了。你能更新你的帖子吗?我已经用lumen实现了广播。检查此项目中的bootstrap/app.php。