Laravel私有频道授权不起作用

问题描述 投票:0回答:1

我正在学习将推送器与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 documentations我必须在channel.php文件中设置授权,因此我在其中写了:

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

请注意,我使用logger('hit authorize roomr');来知道是否正在调用我的函数,但是,当我检查日志文件时,该文件为空,这意味着未在调用此函数。

[使用谷歌浏览器中的开发人员工具,我看到有一个发给http://127.0.0.1:8000/broadcasting/auth的发布请求,该请求返回响应200,因此,我认为身份验证不是问题。

更新:

我现在在chrome控制台中将Pusher.logToConsole = true;添加到我的javascript之后,我得到了:

Pusher::[“从身份验证端点返回的JSON无效,但状态为代码为200。数据为:“]

我还能做什么?请帮助我解决这个问题

laravel laravel-5 laravel-5.8 pusher laravel-echo
1个回答
0
投票

问题出在.env文件中,我通过设置BROADCAST_DRIVER = pusher解决了

© www.soinside.com 2019 - 2024. All rights reserved.