В соответствии с : 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.
Кто знает, как поступить?
Отправка нескольких сообщений и использование 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, это просто способ оптимизировать скорость на который вы отправляете сообщения.
Других решений пока нет …