Pusher Error:订阅私人频道需要Auth Info

时间:2016-11-15 12:41:39

标签: javascript websocket laravel-5.2 webhooks pusher

我正在使用Pusher制作聊天应用程序,在这个应用程序中,我想显示用户的活动,即谁在线。我订阅了一个私人频道,并通过默认情况向我的API发送身份验证POST请求(/pusher/auth)端点。我在我的Api / backend中使用Laravel。我已成功验证客户端的频道。我的响应状态代码为200,在我的回复中,我收到了auth key {"auth":"349a141376483e4b0639:9bcc630ec8c5981acbc49ee145dd76031348b533c16fce68ecff70d1a0243a09"}。但我的问题是我怎样才能获得有关频道是否被占用或空出的信息。我试图得到它,但我得到了

Pusher:错误:{“type”:“WebSocketError”,“error”:{“type”:“PusherError”,“data”:{“code”:null,“message”:“Auth info需要订阅private-1“}}}

Js代码:

<script src="//js.pusher.com/3.2/pusher.min.js"></script>
<script>
var pusher = new Pusher("****************");//Using default endpoint
var user_id={{Auth::user()->id}};
var user_channel=pusher.subscribe( 'private-' + user_id);//user_id is 1.
 </script>

Api代码:

public function pusherAuth(Request $request){

 $channel=$request->input("channel_name");
 $socketId = $request->input('socket_id');
 $auth = $this->pusher->socket_auth($channel, $socketId);
 $info=$this->pusher->get_channel_info($channel);
 $channel_occupied = $info->occupied; //trying to get the Channel status.
 return response()->json($channel_occupied); 
}

我也试过Webhooks for pusher并设置一个Webhook url并将类型设置为Channel存在。我从文档中了解到, Pusher将在任何通道被占用时发送channel_occupied事件(即有至少有一个订阅者。。但是我怎么能抓住那个事件,它会像其他事件一样工作,比如Laravel内置事件吗?。喜欢这个例子 -

     use App\Events\TalkEvent;
     public function Eventdispatcher(){
     event(new TalkEvent($somedata)); 
     }

0 个答案:

没有答案