Рубрики
Uncategorized

Laravel 5.4, широковещательные события, конфигурация и использование толкателя

Автор оригинала: David Wong.

Она была опубликована два года назад, и первоначальный адрес-https://learnku.com/articles/

Недавно я хотел написать чат, поэтому я узнал о трансляции событий laravel. Ссылка взята из http://laravelaccademy.org/pos… Но когда я последовал за блогером, я обнаружил, что событие было успешно запущено, но на консоли отладки pusher не было получено ни одного события. Найдите проблему после отладки.

Во – первых, мы создаем событие:

php artisan make:событие Тестовое событие

В конце концов, код события выглядит следующим образом. Вот записка

Если событие не наследует использование контрактов illuminate, вещание должно транслироваться; интерфейс, событие не будет отправлено на сервер pusher, если оно будет запущено

use ...
//If the event does not inherit the use illuminate \ contracts \ broadcasting \ shouldbroadcast; interface, the trigger event will not be sent to the pusher server
class TestEvent implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;
    //The type should be public 
    public $msg;

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

    public function broadcastOn()
    {
        return [
            'test'
        ];
    }
}

Для удобства тестирования мы создаем команду artisan для запуска события

php artisan make:команда тестового события Команды

Откройте приложение класса команд/консоль/команды/testeventcommand.php и отредактируйте его следующим образом

    class TestEventCommand extends Command
{

    protected $signature = 'pusher:test {message}';
    protected $description = 'pusher test';


    public function __construct()
    {
        parent::__construct();
    }

    public function handle()
    {
        event(new \App\Events\TestEvent($this->argument('message')));
    }
}

Откройте приложение/консоль/kernel.php и добавьте только что созданный класс команд в $commands

    protected $commands = [
        Commands\TestEventCommand::class,
    ];

композитору требуется толкатель/толкатель-php-сервер

После успешного импорта толкателя его необходимо настроить в Env, BROADCAST_DRIVER Необходимо настроить как толкатель 。 Конфигурация/broadcasting.php файл BROADCAST_DRIVER Значение по умолчанию равно null

- PUSHER_APP_ID=you_app_id
- PUSHER_APP_KEY=you_app_key
- PUSHER_APP_SECRET=you_app_secret
- BROADCAST_DRIVER = pusher

Кроме того, тест здесь показывает, что если QUEUE_DRIVER Если конфигурация имеет красный цвет, метод создания драйвера толкателя в диспетчере широковещательной передачи с подсветкой не будет вызываться при запуске события. То есть класс pusher не будет создан для отправки события QUEUE_DRIVER Должен быть настроен как синхронизация

После завершения настройки мы можем отправлять события на сервер pusher с помощью команды artisan,

php artisan pusher:тест “привет”

Затем вы увидите его на консоли отладки pusher

Оригинал: “https://developpaper.com/laravel-5-4-broadcast-events-pusher-configuration-and-use/”