【问题标题】:laravel pusher webhook always fails due timeoutlaravel pusher webhook 总是由于超时而失败
【发布时间】:2020-12-26 07:16:45
【问题描述】:

我正在使用存在和通道存在类型的 Pusher webhook,并且在本地我正在使用 ngrok 将请求代理到我的机器。 每当将 webhook 请求发送到我的本地服务器时,它就会被接收并在 ngrok 中返回 200 状态代码,但是,对于完全相同的请求,我在 Pusher 调试控制台中看到“webhook failed due time out”。 我使用 microtime(true) 为我的控制器执行计时,通常它需要 0.05325984954834,它低于 Pusher 3 秒超时。 问题是什么?请问怎么解决?

这是我的代码:

  public function channelExistance(Request $request){
        // return response('ok', 200);
        $start = microtime(true);
        if($this->requestValid($request)){
         foreach ($request->input('events') as $event) {
            $name = $event['name'];
            $channel_name = $event['channel'];
            if(stripos($channel_name, 'presence') === false && stripos($channel_name, 'private') === false){
            if($event['name'] == 'channel_occupied'){

               $this->manager->channelStarted($channel_name);
            }
            elseif($event['name'] == 'channel_vacated'){
               $this->manager->supporterIsFreed($channel_name);
            //    return response('ok', 200);
            }
        }
   }
}
$end = microtime(true) - $start;
    logger('time taken: '.$end);
    header("Status: 200 OK");
}

【问题讨论】:

    标签: laravel laravel-5 pusher


    【解决方案1】:

    这表明您没有正确返回 200 响应。 通读this answer,似乎可以通过多种方式返回响应。在您的情况下,您可以替换

    header("Status: 200 OK");
    

    header("HTTP/1.1 200 OK");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-17
      • 1970-01-01
      • 2012-06-22
      • 2016-07-03
      相关资源
      最近更新 更多