Как изменить время ожидания только для некоторых определенных вызовов XML-RPC

0

Я использую клиентскую библиотеку XML-RPC для C/C++ (поверх CURL) в версии 1.25.23:

  • отправить данные в...

а также

  • получать (опрос) событий от...

... Сервер приложений XML-RPC.

Чтобы уменьшить трафик данных (во время опроса событий), я пытаюсь реализовать механизм "длинного опроса" для некоторых (!) Конкретных методов. Для этого мне нужно изменить значение "Глобальный тайм-аут запроса" только для тех вызовов "без тайм-аута", которые отличаются от глобального значения таймаута (например, 3 секунды). К сожалению, я не вижу возможности сделать это, не разрушая и не воссоздавая экземпляр глобального клиента (xmlrpc_client_cleanup/xmlrpc_client_init2) для каждого отдельного запроса !!!! Я не думаю, что это будет хорошим решением.

Кто-нибудь сталкивается с реализацией "длинного опроса" с XML-RPC над CURL?

Заранее спасибо! Максимум

Теги:
curl
long-polling
xml-rpc

1 ответ

0

Спасибо Брайан Хендерсон!

Я могу думать о двух вещах.

Во-первых, вам не нужно использовать глобальный клиент XML-RPC. У вас могут быть два частных клиента - использовать их для регулярных RPC RPC RPC, а другой для RPC, которые занимают много времени.

http://xmlrpc-c.sourceforge.net/doc/libxmlrpc_client.html#privateclient

Другое, что вы можете сделать, это не использовать тайм-аут переноса Curl и вместо этого использовать сигнал тревоги (SIGALRM) для прерывания RPC, которые занимают слишком много времени.

http://xmlrpc-c.sourceforge.net/doc/libxmlrpc_client.html#interrupting

Идея "частного клиента" сделала это для меня !!!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню