0

我正在使用带有 Pusher 的 Laravel 5.3,一切运行良好。

但是我想将我的 Pusher 凭据导出到.env. 或其他任何地方,以便我可以在我的开发/登台/生产环境中轻松使用不同的 Pusher 应用程序。

这是我的设置:

从“laravel-echo”导入 Echo

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: 'myKey', //development key
    cluster: 'eu',
    encrypted: true
});

gulpfile.js我有

elixir(function(mix) {
    mix.webpack('echo.js','./resources/assets/js/');
});

然后

mix.scripts([
    'echo.js',
    ...
], 'public/js/all.js');

最后在我看来:

let myRoom = 'room-user-'+'{{ Auth::user()->id }}';
    Echo.private(myRoom)
        .listen('MyEvent', (e) => {
            console.log(e);
        });

正如我所说,这一切都很好。

我的问题是key: 'myKey', //development key. 有没有简单的方法在env('PUSHER_KEY')这里使用 Laravel 环境变量?因为现在我需要在我的开发、登台和生产中使用相同的 Pusher 应用程序。

config/broadcasting也是

'connections' => [

    'pusher' => [
        'driver' => 'pusher',
        'key' => env('PUSHER_KEY'),
        'secret' => env('PUSHER_SECRET'),
        'app_id' => env('PUSHER_APP_ID'),
        'options' => [
            'cluster' => env('PUSHER_CLUSTER','eu'),
            'encrypted' => true,
        ],
    ],
4

1 回答 1

0

我最终使用laravel-elixir-env库作为:

gulpfile.js

var elixir = require('laravel-elixir');
require('laravel-elixir-env');
...
elixir(function(mix) {
   mix.webpack('echo.js','./resources/assets/js/');
});
...

回声.js

import Echo from "laravel-echo"
window.Echo = new Echo({
    broadcaster: 'pusher',
    key: process.env.PUSHER_KEY,
    cluster: 'eu',
    encrypted: true
});

.env

...
PUSHER_KEY=my_pusher_key
...
于 2017-01-25T15:50:26.707 回答