php - laravel 事件不发送到推送器

标签 php laravel pusher

我有推送器应用程序,然后我尝试通过 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!";
});

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

enter image description here 这是我的 broadcasting.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

最佳答案

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

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

还有结帐this很棒的播放列表,这肯定会解决您的所有问题

关于php - laravel 事件不发送到推送器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50579162/

相关文章:

php - Laravel 用于生产和开发的不同 config/database.php

laravel - 执行 Git 推送 Laravel 时不包含存储链接

laravel - save 与 saveorfail (简而言之,真正的区别)

javascript - Socket.io - 将数据从推送流发送到客户端

php - 使用 Laravel 5.4 和推送器向公共(public) channel 广播通知

java - Pusher:减少连接状态的超时

php - 链接到 WordPress 中的另一个页面

php - 考试组件免费?

php - 更新mysql出错

Laravel 调度程序在 tmp 文件夹中创建数千个日志文件