Php curl сохранить живое соединение

В соответствии с : https://help.nexmo.com/hc/en-us/articles/205065817-Can-I-send-multiple-SMS-in-a-single-API-request-

«Убедитесь, что ваше соединение остается активным, чтобы вы могли повторно использовать сокет HTTP при отправке запросов и в полной мере использовать пропускную способность вашего аккаунта (5 SMS / сек). Лучше всего использовать HTTP 1/1 и Keep-Alive соединение поэтому каждый раз, когда вы отправляете новый запрос, вам не нужно открывать другое соединение HTTP. «

Я прочитал несколько сведений, чтобы попытаться сохранить соединение с помощью curl, но я не могу отправить 5 смс с повторным использованием сокета http.

Каково решение ?

Я пробовал с:

curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);

Нет успеха

Я пытался удалить:

curl_close($ch);

Нет успеха тоже …

Я не могу найти хороший способ сохранить соединение, чтобы отправлять смс, как того требует nexmo.

Кто знает, как поступить?

0

Решение

Отправка нескольких сообщений и использование keep-alive это две разные вещи. С Nexmo (как упоминается в FAQ) вы можете отправлять только одно SMS на HTTP-запрос. Чтобы отправить несколько SMS, вам просто нужно сделать несколько HTTP-запросов.

По умолчанию Nexmo позволит вашей учетной записи делать 5 запросов в секунду к SMS API. Если вы хотите максимизировать пропускную способность, вам нужно убедиться, что вы делаете запрос как можно быстрее (или действительно, по крайней мере, так быстро, с этим 5 / секундным пределом скорости).

Вот где keep-alive вступает в игру, убедившись, что вы отправляете запросы как можно быстрее. curl_setop документы ссылаются на CURLOPT_FORBID_REUSE который позволяет:

TRUE, чтобы принудительно закрыть соединение, когда оно завершит обработку, и не быть объединенным для повторного использования.

Таким образом, по умолчанию, curl пытается использовать keep-aliveпри условии, что вы повторно используете ручку завитка. Увидеть этот вопрос для более подробной информации об этом.

Заимствование этого кода из быстрый старт здесь (раскрытие, я их автор):

<?php
$url = 'https://rest.nexmo.com/sms/json?' . http_build_query([
'api_key' => API_KEY,
'api_secret' => API_SECRET,
'to' => YOUR_NUMBER,
'from' => NEXMO_NUMBER,
'text' => 'Hello from Nexmo'
]);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);

Если вы используете curl_setop() установить новый CURLOPT_URL с другим номером / сообщением (которое использует дескриптор curl) curl должен использовать keep-alive по умолчанию.

Но имейте в виду, это не изменится как вы отправляете несколько сообщений с Nexmo, это просто способ оптимизировать скорость на который вы отправляете сообщения.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]