使用Gateway的时候在onMessage中利用curl post请求,为什么会堵塞?
问题描述
使用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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
已解决 在请求的时候 加上curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);就oK
workerman有视频教程,挺不错的。网址: https://study.163.com/course/...