Laravel авторизация частного канала не работает - PullRequest
0 голосов
/ 11 апреля 2020

Я учусь pusher использовать его с Laravel, я пытаюсь подписаться на частный канал, используя Laravel -echo следующим образом:

import Echo from 'laravel-echo';

window.Pusher = require('pusher-js');

window.Echo = new Echo({
    Pusher.logToConsole = true; //update: added this
    broadcaster: 'pusher',
    key: process.env.MIX_PUSHER_APP_KEY,
    cluster: process.env.MIX_PUSHER_APP_CLUSTER,
    encrypted: true
});

var channel = window.Echo.private('roomr');

и за Laravel документацию Я должен установить авторизацию в канале. php файл, поэтому я написал в нем:

Broadcast::channel('roomr', function ($user) {
    logger('hit authorize roomr');
    return true;
});

обратите внимание, что я использовал logger('hit authorize roomr');, чтобы узнать, вызывается ли моя функция, но, когда я проверяю файл журнала, он пуст, что означает, что эта функция не вызывается.

с использованием инструментов разработчика в google chrome Я вижу, что отправлен запрос на http://127.0.0.1: 8000 / broadcasting / auth , который возвращает ответ 200, поэтому я не думаю, что проблема заключается в аутентификации.

Обновление:

после того, как я добавил Pusher.logToConsole = true; к моей javascript теперь в chrome консоли я получаю:

Pusher:: ["JSON возвращено из конечной точки аутентификации недопустимым, но код состояния был 200. Данные были:"]

что еще я могу сделать? пожалуйста, помогите мне решить эту проблему

1 Ответ

0 голосов
/ 11 апреля 2020

Проблема была в файле .env, и я решил ее, установив BROADCAST_DRIVER = pusher

...