我正在尝试建立一个在线 channel 。但是返回的身份验证字符串不正确。
这是后端代码:
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是否存在相同的问题。
最佳答案
对我来说,这是由于在生产环境中未正确设置推键,secret和app_id值引起的。
关于Laravel Pusher存在 channel 身份验证错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36963417/