1

使用 Laravel echo、pusher 和 vuejs。

每当我尝试加入私人频道(自己用户的频道)时,都会收到此错误

"Pusher : Couldn't retrieve authentication info. 419Clients must be authenticated to join private or presence channels. See: https://pusher.com/docs/authenticating_users"

这是我加入频道的那一刻:

Echo.private('App.User.' + response.data.currentUser)
.listen('Event',(e)=>{});

response.data.currentUser确实包含正确的用户ID。

这是channel.php

Broadcast::channel('App.User.{id}', function ($user, $id) {
    if (Auth::user()->id == (int) $id) {
        return ['STATUS' => 'OK'];
    } else {
        return false;
    }
});

我该如何解决这个问题

4

2 回答 2

0

我有同样的问题,原来是我的服务器缺少PHP curl extension.

我首先收到此错误:

在此处输入图像描述

调用未定义的方法 Pusher\Pusher::socket_auth()

然后我尝试安装:

composer require pusher/pusher-http-laravel

您的系统错误中缺少 PHP 扩展 curl

在此处输入图像描述

安装php-curl后:

sudo apt-get install php-curl

它修复了一切,现在正在工作。

于 2019-03-18T02:11:19.857 回答
0

我通过添加这个解决了这个问题

import Echo from 'laravel-echo'

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

window.Echo = new Echo({

    "authEndpoint": "/your-project-name/broadcasting/auth",
    broadcaster: 'pusher',
   key: '####################',
   cluster : "mt1",
   encrypted: true

});
于 2017-10-06T14:50:50.310 回答