首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
HTTP相应时间超过1秒
### 问题描述 用的是swoole websocket服务端,用http请求这个websocket服务器,在onrequest 发现,执行时间超过1秒是什么原因?也就是说发送HTTP时时间为 T1,在onrequest的时间为T2,则T2-T1>1秒,已经尝试过提高带宽,但是没有明显改善 ### Swoole版本,PHP版本,以及操作系统版本信息 swoole 版本4.5 PHP 版本7.4 centos7 ### 相关代码 ```php public function notifychatserver($action, $mdata) { $message['action'] = $action; $message['data'] = $mdata; \Yii::info($message); $url = "http://" . \Yii::$app->params['swoole.server.ip'] . ':' . \Yii::$app->params['swoole.port']; $data['data'] = json_encode($message); \Yii::info($url); \Yii::info($data); $this->sendCurl($url, $data); } public function sendCurl($url, $arrPostData) { //初始化 $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_POSTFIELDS, $arrPostData); //执行命令 $data = curl_exec($curl); //关闭URL请求 curl_close($curl); } $this->server->on('request', function ($request, $response) { try { $this->onRequest($request, $response); } catch (\Throwable $e) { $this->log(json_encode($e->getTrace())); } }); ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 希望相应时间小于50ms
发布于6年前 · 3 次浏览 · 来自
提问
阿凡哥
### 问题描述 用的是swoole websocket服务端,用http请求这个websocket服务器,在onrequest 发现,执行时间超过1秒是什么原因?也就是说发送HTTP时时间为 T1,在onrequest的时间为T2,则T2-T1>1秒,已经尝试过提高带宽,但是没有明显改善 ### Swoole版本,PHP版本,以及操作系统版本信息 swoole 版本4.5 PHP 版本7.4 centos7 ### 相关代码 ```php public function notifychatserver($action, $mdata) { $message['action'] = $action; $message['data'] = $mdata; \Yii::info($message); $url = "http://" . \Yii::$app->params['swoole.server.ip'] . ':' . \Yii::$app->params['swoole.port']; $data['data'] = json_encode($message); \Yii::info($url); \Yii::info($data); $this->sendCurl($url, $data); } public function sendCurl($url, $arrPostData) { //初始化 $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_POSTFIELDS, $arrPostData); //执行命令 $data = curl_exec($curl); //关闭URL请求 curl_close($curl); } $this->server->on('request', function ($request, $response) { try { $this->onRequest($request, $response); } catch (\Throwable $e) { $this->log(json_encode($e->getTrace())); } }); ``` ### 你期待的结果是什么?实际看到的错误信息又是什么? 希望相应时间小于50ms
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2020-06-18
鲁飞
``` $this->onRequest($request, $response); ``` 对应的什么操作? curl是阻塞的。
赞
0
回复
2020-06-18
阿凡哥
回复
鲁飞
这里是业务处理的
赞
0
回复
2020-06-18
阿凡哥
onRequest里面下面是业务处理 我指的是从发送http到服务端接收到指令的时间,不算业务处理的时间
赞
0
回复
2020-06-18
鲁飞
回复
阿凡哥
使用纯Swoole代码测试。
赞
0
回复