我一直在测试 Laravel Echo,它适用于非私人频道。我收到通过该非私人频道上的事件传递的数据。但问题是当我将事件设置为在私人频道上广播时,我收到如下错误消息: 注意:我按照图片以用户身份登录。
当我订阅私人频道时,在 Laravel 中我去了 config/app.php 并取消注释“ App\Providers\BroadcastServiceProvider::class, ”。还转到 App\Providers\BroadcastServiceProvider.php 并使用如下图所示的代码:
我的 Resources/assets/js/bootstrap.js 文件具有以下代码并使用 laravel mix 编译:
import Echo from 'laravel-echo'
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: 'hiddenkey',
cluster: 'ap1',
encrypted: true
});
window.Echo.private('chat-room.1')
.listen('ChatMessageWasReceived', (e) => {
console.log(e.user, e.chatMessage);
});
顺便说一句,我已经安装了所有依赖项,即:-composer 需要 pusher/pusher-php-server,-npm install --save laravel-echo pusher-js,还使用对 .env 文件的引用配置了我的 config/broadcasting.php输入了推送器所需的所有信息。正如您所看到的,我从事件中接收数据的非私人频道一切正常,如下图所示:
为什么即使我是已登录的经过身份验证的用户,并且在 BroadcastServiceProvider.php 文件中我对 Broadcast::channel()
方法返回 true,我也看不到从我的事件传递的数据?我从非私人频道接收数据,那为什么不在私人频道呢?我做错了什么?为什么我在控制台而不是数据中出现这些错误:
- POST http://example.dev/broadcasting/auth 500 (Internal Server Error)
- Pusher : Couldn't get auth info from your webapp : 500
顺便说一句,我一直在关注本教程,直到我被私人频道卡住: https ://mattstauffer.co/blog/introducing-laravel-echo