2016-11-08 6 views
1

CURLOPT_VERBOSEでは、実際にWebリンクに要求する前に、システムがPROXYに接続するための時間がかかります。PHP Curl Keepプロキシ接続のライブ

$ch = curl_init("$url"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0); 


curl_setopt($ch, CURLOPT_VERBOSE, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 


curl_setopt($ch, CURLOPT_ENCODING, "gzip"); 
curl_setopt($ch, CURLOPT_PROXY, "$ip"); 
curl_setopt($ch, CURLOPT_PROXYPORT, "$po"); 



$response = curl_exec($ch); 
$errmsg = curl_error($ch); 
$cInfo = curl_getinfo($ch); 
curl_close($ch); 

私は、待ち時間を短縮するためにカールを閉じずに複数のリンクを実行したいと考えています。 PROXYのライブを維持し、リンクに複数のリクエストを行う方法はありますか?

答えて

0

curlがプロキシを使用する場合、接続はcurl_closeの呼び出しまでオープンしたままになります。接続が確立されると

二つの重要なポイント、

  1. まず/初期のプロキシ接続は、常に時間(レイテンシ)を取るつもり
  2. 、単に要件に応じてパラメータを調整し、接続を閉じないでください。例えば

//$ch = curl_init("$url"); 
$ch = curl_init(); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0); 


curl_setopt($ch, CURLOPT_VERBOSE, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 


curl_setopt($ch, CURLOPT_ENCODING, "gzip"); 
curl_setopt($ch, CURLOPT_PROXY, "$ip"); 
curl_setopt($ch, CURLOPT_PROXYPORT, "$po"); 



curl_setopt($context, CURLOPT_URL, $url); // Request One 
$response = curl_exec($ch); 
$errmsg = curl_error($ch); 
$cInfo = curl_getinfo($ch); 

curl_setopt($context, CURLOPT_URL, $url); // Request Two 
$response = curl_exec($ch); 
$errmsg = curl_error($ch); 
$cInfo = curl_getinfo($ch); 

curl_setopt($context, CURLOPT_URL, $url); // Request Three 
$response = curl_exec($ch); 
$errmsg = curl_error($ch); 
$cInfo = curl_getinfo($ch); 

curl_close($ch); //Closing after all requests 

最初の要求は、複数の要因に依存し、プロキシへの接続確立に時間がかかります。最初の要求後、すべての要求はより高速になり、実際のプロキシ速度(提供されるサーバースクリプト> =プロキシ速度)に基づいて発生します。

私は永続的な接続を行うことはできないと思います。それを行う方法がわかっている場合は、以下を共有してください:-)

関連する問題