我试图建立一个在线频道。但是返回的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是否有同样的问题。
答案 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];
});