2016-12-15 259 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 –