use*_*306 5 php curl http-pipelining
我正在尝试使用 PHP cURL HTTP Pipelining 功能通过单个 TCP 连接执行多个请求。请参阅此页面http://www.php.net/manual/en/function.curl-multi-setopt.php我通过添加以下内容为 curl_multi_exec() 启用流水线:
curl_multi_setopt($mh, CURLMOPT_PIPELINING, 1);
我不想在此处发布大量源代码列表,但您可以在此处从我的 github 轻松查看或检出完整示例https://github.com/anovikov1984/pipelining-example
为了监控 TCP 连接,我在另一个控制台会话中使用了“netstat -t -u -c”命令。
在我上面提到的 repo 中,有两个脚本。一种用于 Ruby,一种用于 PHP。Ruby 版本可以正常工作,并且只为 3 个 GET 请求打开单个 TCP 连接。但是 PHP cURL 版本打开的 TCP 连接与传递给 curl_multi_exec() 函数的 cURL 句柄的数量一样多。
我究竟做错了什么?
看起来这可能是 PHP 的带有 PIPELINING 的curl_multi_* 实现中的一个错误。看起来他们可能不会公开使开发人员能够在使用 PIPELINING 时指示 curl 在多请求上的行为方式所需的所有常量。
我已在这里提交错误报告: https ://bugs.php.net/bug.php?id=68449
归档时间: |
|
查看次数: |
1254 次 |
最近记录: |