(PHP 8 >= 8.2.0)
curl_upkeep — Проверяет и поддерживает соединение в рабочем состоянии
Функция доступна, только если PHP-модуль cURL собрали с библиотекой libcurl >= 7.62.0.
Отдельные протоколы поддерживают механизмы «обслуживания соединения». Такие механизмы в стандартном сценарии передают небольшой объем данных через текущие соединения, чтобы соединения оставались активными; это предотвращает разрыв соединений, например, из-за агрессивной политики межсетевых экранов.
Механизм обслуживания и поддержки соединений доступен только для соединений по протоколу HTTP/2. Для поддержания соединения отправляется небольшой объем трафика. Протокол HTTP/2 обслуживает соединение путём отправки HTTP/2-команды PING.
Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.
Пример #1 Пример проверки работоспособности соединения функцией curl_upkeep()
<?php
$url = "https://example.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_UPKEEP_INTERVAL_MS, 200);
if (curl_exec($ch)) {
usleep(300);
var_dump(curl_upkeep($ch));
}
?>