2017-01-23 90 views
0

我使用Laravel 5.3和Pusher,所有工作都很好。Laravel 5.3,ECHO&Pusher,将Pusher秘密出口到.env

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

这是我的设置:

进口回波 “laravel回声”

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。有没有简单的方法在这里使用Laravel环境变量env('PUSHER_KEY')?因为现在我需要在我的开发,分期和制作中使用相同的Pusher App。

而且我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, 
     ], 
    ], 

回答

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/'); 
}); 
... 

echo.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 
...