2016-12-15 314 views
1

我已經設置Laravel使用推送器發送Laravel Echo的事件,但我從工匠控制檯發出的事件不能推動。 我推出的調試控制檯發生的事件工作正常,所以前端部分沒問題。 流浪VM可能會干擾它嗎?Laravel廣播不發送事件推送

我.ENV文件

QUEUE_DRIVER=sync 
... 
PUSHER_KEY=<key> 
PUSHER_SECRET=<secret> 
PUSHER_APP_ID=<app_id> 

我broadcasting.php

'default' => env('BROADCAST_DRIVER', 'pusher'), 
... 
'connections' => [ 

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

事件:

class NewMessage implements ShouldBroadcast 
{ 
    public function broadcastOn() 
    { 
     return [new Channel('chat.'.$this->conversation->id)]; 
    } 
} 

這次活動是從觀察者類,它指出一個模型燒created事件。

public function created(Chat\Message $message) 
{ 
    event(new NewMessage($message)); 
} 

觀察員註冊在AppServiceProvider

class AppServiceProvider extends ServiceProvider 
{ 
    public function boot() 
    { 
     Message::observe(MessageObserver::class); 
    } 
} 

當我運行它創建了一個新的信息終端顯示此控制檯命令:

php artisan chat:broadcast asdasd 
[2016-12-15 16:26:44] local.INFO: Broadcasting [eventname] on channels [channel] with payload: {...} 

注:大部分的名字是保密的,所以我使用了eventname,channel等佔位符,但我希望相關信息在那裏。

謝謝!

+1

我在Laravel 5.1中遇到同樣的問題。有趣的是,它*正在工作,然後神祕地停下來。還沒有弄清楚爲什麼。我可以告訴你,這不是干擾的流浪虛擬機......我們在虛擬機上工作。 – geoidesic

回答

1

確保BROADCAST_DRIVER在.env文件設置爲推動器這樣

BROADCAST_DRIVER=pusher 

broadcasting.php修改藥水陣列像下面的代碼

'pusher' => [ 
    'driver' => 'pusher', 
    'key'  => env('PUSHER_KEY'), 
    'secret' => env('PUSHER_SECRET'), 
    'app_id' => env('PUSHER_APP_ID'), 
    'options' => [ 
     //leave these empty in your code 
    ], 
],` 

保存此更改並運行你的laravel服務器我希望這會爲你工作......!

+0

似乎你可以幫助我。看看這個:https://stackoverflow.com/questions/45877837/how-can-i-make-realtime-notification-for-user-who-are-not-login –