Чат Laravel в режиме реального времени с websockets

#php #laravel #laravel-5 #websocket

#php #laravel #laravel-5 #websocket

Вопрос:

Привет, я пытаюсь создать приложение для чата в реальном времени с помощью websockets, но всякий раз, когда я пытаюсь зайти в гостиhttp://127.0.0.1:8000/laravel-websockets Я получаю сообщение об ошибке 404 не найдено. Я выполнил все шаги, указанные в документации, поэтому я не понимаю, в чем может быть проблема: выполнил все шаги здесь:

 https://beyondco.de/docs/laravel-websockets/basic-usage/starting
  

конфигурация websockets

 'apps' => [
    [
        'id' => env('PUSHER_APP_ID'),
        'name' => env('APP_NAME'),
        'key' => env('PUSHER_APP_KEY'),
        'secret' => env('PUSHER_APP_SECRET'),
        'path' => env('PUSHER_APP_PATH'),
        'capacity' => null,
        'enable_client_messages' => false,
        'enable_statistics' => true,
    ],
]
  

.env файл

 PUSHER_APP_ID=anyID
PUSHER_APP_KEY=anyKey
PUSHER_APP_SECRET=anySecret
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
  

Ответ №1:

Во-первых, как указано в документации, нет емкости строки, во-вторых, пожалуйста, убедитесь, что вы правильно выполнили шаги, и убедитесь, что вы правильно установили свой APP_URL в файле .env. Попробуйте использовать Homestead или Valet, так как иногда установка URL на localhost или 127.0.0.1: 8000, похоже, не работает должным образом.

Я только что провел быстрый тест, чтобы проверить, может ли что-то пойти не так, но, похоже, все работает так, как ожидалось.

введите описание изображения здесь

.env файл:

 APP_URL=http://homestead.laravel_websocket
...
PUSHER_APP_ID=moayadapp
PUSHER_APP_KEY=moayadkey
PUSHER_APP_SECRET=moayadsecret
PUSHER_APP_CLUSTER=mt1
  

websockets.php

 'apps' => [
    [
        'id' => env('PUSHER_APP_ID'),
        'name' => env('APP_NAME'),
        'key' => env('PUSHER_APP_KEY'),
        'secret' => env('PUSHER_APP_SECRET'),
        'path' => env('PUSHER_APP_PATH'),
//        'capacity' => null,
        'enable_client_messages' => false,
        'enable_statistics' => true,
    ],
],
  

Комментарии:

1. возможно ли, что порт 6001 может быть занят, если да, то как это исправить?

2. Если вы не получаете и ошибка 404 при переходе по ссылке, то это не имеет никакого отношения к тому, что ПОРТ занят, проверьте websockets.php запишите эту строку: ‘path’ => ‘laravel-websockets’,

Ответ №2:

Я исправил эту проблему, выполнив эту команду

конфигурация php artisan: очистить