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