Нижеприведенный скрипт будет работать бесконечно и будет инициирован с использованием php myscript.php
.Когда следует использовать curl_close()?
http://example.com/longpolling.php ответит только в том случае, если у него есть что-то сообщить по телефону php myscript.php
, и запрос ниже по кругу будет истекать, прежде чем longpolling.php достигнет своего ограничения по времени.
Должен ли я закрывать и снова открывать завиток каждого цикла или держать его открытым на неопределенный срок.
<?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?
}
Если вы используете 'curl_close' в цикле while, вам нужно снова инициализировать завиток. потому что curl_init, инициализирует новый сеанс и возвращает дескриптор cURL для использования с функциями curl_setopt(), curl_exec() и curl_close(). – Kumar
@ Kumar Точно. Существуют ли причины для обеспечения памяти/производительности/надежности? – user1032531
@apokryfos Я не говорю, что это правильно, но, похоже, он отлично работает, оставив его открытым. Документировано ли это, что он «должен обрабатывать один запрос»? – user1032531