0

これが私の.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));
});

プッシャー チャネルのデバッグ コンソールでトリガーされたイベントが表示されません。

4

3 に答える 3

1

私は解決策を得ました。何らかの理由で、laravelはイベントでキューを使用し、私のキュー接続はこのようにデータベースでした->QUEUE_CONNECTION=databaseそれを削除して同期させ、トリガーを取得し、後でこのようにキューに入れません->QUEUE_CONNECTION=sync

また、これを使用する代わりに、イベントファイルに別の方法がありますShouldBroadcast->ShouldBroadcastNow

于 2021-09-06T15:21:30.700 に答える
0

ルートbroadcast(new orderEvent($text));の代わりに使用する必要があります。event(new orderEvent($text));

于 2021-09-06T11:50:38.907 に答える