Le script ci-dessous fonctionnera indéfiniment et sera initié en utilisant php myscript.php
.Quand devrait-on utiliser curl_close()?
http://example.com/longpolling.php ne répondra que s'il a quelque chose à communiquer à php myscript.php
, et la requête curl ci-dessous expirera avant que longpolling.php atteigne sa limite de temps. Dois-je fermer et rouvrir la boucle à chaque boucle, ou la garder ouverte indéfiniment.
<?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?
}
Si vous utilisez 'curl_close' dans la boucle while, vous devez à nouveau initialiser curl. car curl_init, initialise une nouvelle session et retourne un handle cURL pour l'utiliser avec les fonctions curl_setopt(), curl_exec() et curl_close(). – Kumar
@Kumar Exactement. Y a-t-il des raisons de mémoire/performance/fiabilité pour le faire? – user1032531
@apokryfos Je ne dis pas qu'il est juste de le faire, mais il semble fonctionner parfaitement en le laissant ouvert. Est-il documenté qu'il est "supposé traiter une seule requête"? – user1032531