什么时候应该使用curl_close()?

use*_*531 7 php curl long-polling

以下脚本将无限期运行,并将通过使用启动php myscript.php.

http://example.com/longpolling.php只会在有东西要通信时才会响应php myscript.php,并且在longpolling.php达到其时间限制之前,下面的curl请求会超时.

我应该关闭并重新打开每个循环的卷曲连接,或者让它无限期地保持打开状态.

<?php
// php myscript.php
$options=[
    CURLOPT_URL=>'http://example.com/longpolling.php',
    CURLOPT_RETURNTRANSFER=>true,
    CURLOPT_CONNECTTIMEOUT => 300,
    CURLOPT_TIMEOUT=> 300
];
$ch      = curl_init();
curl_setopt_array( $ch, $options );
while (true) {
    $rsp = curl_exec( $ch );
    // Do something
    //curl_close( $ch );    //should I close and reopen?
}
Run Code Online (Sandbox Code Playgroud)

sec*_*ite 5

如果 URL 位于同一台服务器上,则重用句柄会提高性能。cURL 将为每个到服务器的 HTTP 请求重用相同的 TCP 连接。

这里也是这个问题的一个很好的基准。