Laravel 推送事件未触发

问题描述 投票:0回答:3

这是我的 .env 代码->

BROADCAST_DRIVER=pusher
PUSHER_APP_ID=xxxxx
PUSHER_APP_KEY=xxxxx
PUSHER_APP_SECRET=xxxxx
PUSHER_APP_CLUSTER=xxxxx

这是我的配置代码->

 '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'),
                'useTLS' => true,
                'encrypted' => true,
            ],
        ],

这是我的活动代码 ->

<?php

namespace App\Events;


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

class orderEvent implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    /**
     * Create a new event instance.
     *
     * @return void
     */
    public $text;

    public function __construct($text)
    {
        $this->text = $text;
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return \Illuminate\Broadcasting\Channel|array
     */
    public function broadcastOn()
    {
        return new Channel('fish20');
    }
}

最后这是我的测试路线,我从中触发了事件,但实际上没有发生任何事情:(。->

Route::get('/get', function () {
    $text = 'New order received.';
    event(new orderEvent($text));
});

我看不到调试控制台上触发的任何事件 我的推送频道。

javascript php laravel pusher laravel-events
3个回答
4
投票

我找到了解决方案。由于某种原因,laravel 在事件中使用队列,而我的队列连接是数据库,就像这样 ->

QUEUE_CONNECTION=database
我删除了它并使其同步,以便它得到触发并稍后将其排队,像这样 ->
QUEUE_CONNECTION=sync

您的事件文件还有另一种方法,而不是

ShouldBroadcast
使用此 ->
ShouldBroadcastNow


1
投票

您应该在路线中使用

broadcast(new orderEvent($text));
而不是
event(new orderEvent($text));


0
投票

如果您正在使用QUEUE_CONNECTION=database,请将其删除并使用QUEUE_CONNECTION=sync。然后事件触发部分就可以工作了。

因为我已经使用 vuejs + laravel + Pusher 实现了聊天应用程序。应用程序运行完美。但我使用队列作业添加了邮件发送过程。所以我将队列连接更改为数据库。最后我的聊天应用程序无法运行。所以我删除了队列连接作为同步。现在推送事件完美运行

© www.soinside.com 2019 - 2024. All rights reserved.