首页 > 解决方案 > laravel 事件未发送到推送器

问题描述

我有推送器应用程序,然后我尝试通过 laravel 事件向推送器发送消息,这是我的事件:

namespace App\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class NewOrder
{
    use Dispatchable, InteractsWithSockets, SerializesModels;
    public $email;
    public $message;


    public function __construct($email)
    {
        $this->email = $email;
        $this->message = "New order from {$email}, please check.";
        //
    }

    public function broadcastOn()
    {
        return ['new-order'];
    }

}

我尝试用路由测试来测试它,

Route::get('test', function () {
    event(new App\Events\NewOrder('John'));
    return "Event has been sent!";
});

我的 pusher 配置已经像我的 pusher 的帐户配置一样配置,但是在 access 之后/test,pusher 调试控制台没有显示任何内容。

在此处输入图像描述 这是我的广播.php

    'default' => env('BROADCAST_DRIVER', 'pusher'),


    'connections' => [

        'pusher' => [
            'driver' => 'pusher',
            'key' => env('PUSHER_APP_KEY'),
            'secret' => env('PUSHER_APP_SECRET'),
            'app_id' => env('PUSHER_APP_ID'),
            'options' => [
                'cluster' => env('PUSHER_APP_CLUSTER'),
                // 'cluster' => 'ap1',
                'encrypted' => true,
            ],
        ],

        'redis' => [
            'driver' => 'redis',
            'connection' => 'default',
        ],

        'log' => [
            'driver' => 'log',
        ],

        'null' => [
            'driver' => 'null',
        ],

    ],

];

我不知道从 laravel 应用程序中查看推送者的日志,任何人都可以帮助我吗?我正在使用 laravel 5.5

标签: phplaravelpusher

解决方案


我认为问题在于您的事件类声明,您应该实现ShouldBroadcastNow它,因为它会立即触发事件并且不需要队列实现。默认情况下,您需要设置一个队列,然后运行该队列来触发事件。

use Illuminate\Contracts\Broadcasting\ShouldBroadcastNow;
class NewOrder implements ShouldBroadcastNow
{
  ....do your stuff....
}

并查看这个惊人的播放列表,这肯定会解决您的所有问题


推荐阅读