使用Gateway的时候在onMessage中利用curl post请求,为什么会堵塞?

发布于 2022-09-11 20:02:59 字数 1933 浏览 18 评论 0

问题描述

使用Gateway的时候在onMessage中利用curl post请求,会出现堵塞,要刷新好几次,然后等一段时间才会通,通了之后,在一定时间内重新访问时没问题的,等过段时间,没人访问了,就会有堵塞。

问题出现的环境背景及自己尝试过哪些方法

lnmp

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

          $res = curl_post($host.'Workman/bind', $message['head'],['client_id' => $client_id,'gameid'=>$message['body']['gameid']]);
          if($res['code'] != 1){
              $msg = [
                  'type' => 'error',
                  'code' => '-1',
                  'msg' => (isset($res['msg'])) ? $res['msg'] : '初始化失败!'
              ];
          }else{
              $msg = [
                  'type' => 'success',
                  'code' => '1',
                  'msg' => '初始化成功!'
              ];
          }
          Gateway::sendToClient($client_id,json_encode($msg));
          function curl_post($url,$head,$data){
                $new_head = [];
                foreach ($head as $k => $v){
                    $new_head[] = "{$k}:{$v}";
                }
                //初始化
                $curl = curl_init();
                //设置抓取的url
                curl_setopt($curl, CURLOPT_URL, $url);
                //设置头文件的信息作为数据流输出
                curl_setopt($curl, CURLOPT_HEADER, 0);
                //设置获取的信息以文件流的形式返回,而不是直接输出。
                curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
                //设置post方式提交
                curl_setopt($curl, CURLOPT_POST, 1);
                curl_setopt($curl, CURLOPT_HTTPHEADER, $new_head);
                //设置post数据
                curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
                //执行命令
                $data = curl_exec($curl);
                //关闭URL请求
                curl_close($curl);
                //显示获得的数据
            
                return json_decode($data, true);
        }
          
          

你期待的结果是什么?实际看到的错误信息又是什么?

workman报错process terminated

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

逐鹿 2022-09-18 20:03:00

已解决 在请求的时候 加上curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);就oK

听风念你 2022-09-18 20:03:00

workerman有视频教程,挺不错的。网址: https://study.163.com/course/...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文