Исключение: Подсветка \ Broadcasting \ BroadcastException Нет сообщений в PusherBroadcaster.php: 119 - PullRequest
1 голос
/ 11 марта 2019

Ларавел 5.8

Я новичок во всей этой функциональности толкателя, и я следовал этому уроку и пробовал его,

Создание веб-уведомлений с использованием каналов Laravel и Pusher .

Я пошагово следовал ему, и когда я попал на шаг, чтобы вручную проверить событие, посетив тестовую ссылку, я получил следующее исключение:

Подсветка \ Broadcasting \ BroadcastException Нет сообщения

C: \ WAMP \ WWW \ аров \ поставщика \ Laravel \ рамки \ SRC \ Осветите \ Broadcasting \ Вещательные \ PusherBroadcaster.php

Вот код:

    $response = $this->pusher->trigger(
        $this->formatChannels($channels), $event, $payload, $socket, true
    );

    if ((is_array($response) && $response['status'] >= 200 && $response['status'] <= 299)
        || $response === true) {
        return;
    }

    throw new BroadcastException( // <-- Exception at this line
        is_bool($response) ? 'Failed to connect to Pusher.' : $response['body']
    );
}

/**
 * Get the Pusher SDK instance.
 *
 * @return \Pusher\Pusher
 */
public function getPusher()
{
    return $this->pusher;
}
}

Я просмотрел несколько других статей о переполнении стека, в которых говорится об изменении encrypted: true на encrypted: false, но это, похоже, ни на что не влияет.

Ответы [ 2 ]

0 голосов
/ 01 июня 2019

Я начал работать над Laravel 4 дня назад и столкнулся с этой же проблемой, когда внедрял приложение чата в реальном времени. После поиска в течение многих дней я обнаружил, что это может варьироваться в зависимости от версии Laravel, которую вы используете. Если это 5.8, вы можете исправить это, добавив следующий код в массив pusher.options файла config / broadcasting.php:

'curl_options' => [
                CURLOPT_SSL_VERIFYHOST => 0,
                CURLOPT_SSL_VERIFYPEER => 0,
            ],

После добавления этого ваш массив пушеров в config / broadcasting.php должен выглядеть следующим образом.

'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'),
            'encrypted' => true,
            'curl_options' => [
                CURLOPT_SSL_VERIFYHOST => 0,
                CURLOPT_SSL_VERIFYPEER => 0,
            ],
        ],
    ],

После этого вы можете запустить php artisan config:cache (что может не потребоваться в некоторых случаях) и, наконец, запустить php artisan serve. Вы можете проконсультироваться со своим приложением на веб-сайте-отправителе и просмотреть события, которые вы получите после отправки сообщений. Надеюсь, это поможет !!

0 голосов
/ 13 марта 2019

Как я уже упоминал в комментарии, прежде чем это произойдет, когда весь пост пойдет не так и не доставит ответ.Вот почему возникает исключение в строке 116.Я изменил его на домен раньше!

В моем случае я следовал коду и нашел метод "createPusherDriver" в "vendor / laravel / framework / src / Illuminate / Broadcasting / BroadcastManager.php".В этом месте я вставил

var_dump($config['key']);
var_dump($config['secret']);
var_dump( $config['app_id']);
var_dump($config['options']);
exit;

и заметил, что мои опции все еще перечислены "host" => "localhost".

Я удалил эти строки и очистил кеш конфигурации, выполнив php artisan config:cache

При следующей перезагрузке мое событие было зарегистрировано в консоли.

...