如何配置 Lumen 通过 Pusher 广播事件?

How Can I Configure Lumen To Broadcast Events via Pusher?

Lumen 的文档指出 "Lumen supports several broadcast drivers out of the box: Pusher, Redis, and a log driver for local development and debugging. A configuration example is included for each of these drivers. The BROADCAST_DRIVER configuration option may be used to set the default driver."

在我的 .env 文件中我设置了 BROADCAST_DRIVER=pusher。 Where/how 我可以配置我的推送 ID、密钥和机密吗?我在 Laravel 中看到用于设置这些选项的配置文件位于 config/broadcasting.php 中。 我可以在 Lumen 的什么地方设置这些选项?

我暂时编辑了 Illuminate\Broadcasting\BroadcastManager 并将我的值硬编码在其中。

protected function createPusherDriver(array $config)
    {
        // override
        $app_id = 'hidden';
        $key = 'hidden';
        $secret = 'hidden';

        return new PusherBroadcaster(
            new Pusher($key, $secret, $app_id, Arr::get($config, 'options', []))
        );
    }

好的,我明白了。基本上你必须自己添加配置文件。

  1. 在您的应用程序的根目录中创建一个 config 目录。
  2. 将工作 laravel 安装中的 config/broadcasting.php 复制到此目录中
  3. 将以下键添加到您的 .env 文件中:PUSHER_SECRET, PUSHER_KEY, PUSHER_APP_ID

Lumen一般支持两种配置方式:

  • 设置 Lumen 消耗的环境变量 internal config files
  • 创建覆盖 Lumen 内部配置的项目配置文件

Lumen 提供配置大多数框架组件(包括 Pusher)所需的基于环境的配置变量。虽然从文档中不清楚,但我们也可以通过 Laravel 这样的配置文件来配置 Lumen。这启用了 Lumen 可能不通过其内置配置结构支持的高级配置。

默认情况下,新的 Lumen 项目不像新的 Laravel 项目那样在 config/ 目录中提供配置文件。正如@Feek 发现的那样,我们可以创建 config/ 目录并添加任何需要的配置文件。例如,我们可以创建config/broadcasting.php文件来设置广播连接。

像这样在项目中创建配置文件时,如果与 Lumen 内置配置文件之一的名称匹配,Lumen 将自动从文件中读取配置值。如果我们想添加一个与 Lumen 的内部配置文件名不匹配的自定义配置文件,我们需要手动指示 Lumen 读取服务提供商或 bootstrap/app 中的配置文件。php.

例如,要从 config/my-custom-config.php 加载配置值,请将此行添加到应用程序的启动过程中:

$app->configure('my-custom-config');

在这个问题的特殊情况下,Lumen 的内置 broadcasting.php 配置文件会为我们读取 Pusher 环境变量,因此我们不需要创建这些在项目中的配置文件。只需在 .env.

中设置 BROADCAST_DRIVERPUSHER_SECRETPUSHER_KEYPUSHER_APP_ID