我正在学习将推送器与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。数据为:“]
我还能做什么?请帮助我解决这个问题
问题出在.env文件中,我通过设置BROADCAST_DRIVER = pusher解决了