Laravel Pusher Presence Channel Auth错误

时间:2016-05-01 05:32:57

标签: laravel pusher

我试图建立一个在线频道。但是返回的auth字符串不正确。

这是后端代码:

class pusherController extends Controller
{

    protected $pusher;

    public function __construct(PusherManager $pusher)
    {
        $this->pusher = $pusher;
    }

    public function pusherPinyinAuth(Request $request)
    {
        if($request->user()) {
            $user = $request->user();
            $auth= $this->pusher->presence_auth($request->input('channel_name'),$request->input('socket_id'), $user->id, array('h'=>'user_info'));
            return response($auth);
        }
    }
}

错误消息

Pusher : Error : {"type":"WebSocketError","error":{"type":"PusherError","data":{"code":null,"message":"Auth value for subscription to presence-5 is invalid: should be of format 'key:signature'"}}}

我猜这个错误是由额外的':'在auth字符串之前添加。但我手动删除它仍然报告相同的错误。这是我的字符串输出:

{auth: ":8dacf362f8fe62bae42c33dfe5511d3d1c42144685d5843a6a6a8014490ed0f6",…}

我正在使用https://github.com/vinkla/pusher

中的推杆桥

我想尝试官方的pusher-php-server,但在安装了composer之后,我不知道如何在我的代码中使用它。我想知道https://github.com/pusher/pusher-http-php是否有同样的问题。

2 个答案:

答案 0 :(得分:5)

对我来说,这是由于pusher密钥,secret和app_id值未在生产中正确设置造成的。

答案 1 :(得分:0)

我也遇到同样的错误

Pusher : Error : {"type":"WebSocketError","error":{"type":"PusherError","data":{"code":null,"message":"Auth value for subscription to presence-5 is invalid: should be of format 'key:signature'"}}}

我能够通过在 channel.php 文件中返回包含用户详细信息的数组来解决此问题

请参见下面的代码示例: channel.php

Broadcast::channel('request_channel', function ($user) {
    return  ['id' => $user->id, 'name' => $user->name];
});