Я создаю PHP (не ненавидь !!) сценарий, который создает долгосрочное соединение с новым сервером APNS от Apple, согласно их новая документация.
Общая концепция while(true)
петля, которая спит для N секунд и проверяет очередь на исходящие push-уведомления, которые создаются и вставляются в базу данных отдельным приложением.
Я застрял с пониманием следующего раздела документации из-за недостатка знаний в спецификации и протоколе HTTP / 2.
Лучшие практики для управления соединениями
<snip>
Вы можете проверить работоспособность вашего соединения, используя HTTP / 2PING
Рамка.
По мере выполнения этого цикла я должен быть предупрежден о состоянии моего соединения, чтобы я мог восстановить соединение в случае, если меня отключат или соединение каким-либо образом прервано.
Итак, подведем итог, как бы я отправил HTTP / 2 PING
фрейм с использованием cURL, в частности PHP cURL, и как может выглядеть ответ?
Я полагаю, поскольку cURL использует nghttp2 в качестве низкоуровневой библиотеки для взаимодействия с HTTP / 2, это как-то связано с этим, но я не уверен, как использовать функции nghttp2 изнутри curl: https://nghttp2.org/documentation/nghttp2_submit_ping.html
curl (в настоящее время) не предлагает API, который позволяет приложению отправлять определенные кадры HTTP / 2, такие как PING.
Других решений пока нет …