如何仅更改某些特定 XML-RPC 调用的超时
How to change the timeout only for some specific XML-RPC calls
我在 1.25.23 版中使用 XML-RPC for C/C++(通过 CURL)客户端库来:
- 将数据发送到...
和
- 接收(轮询)来自 ...
。XML-RPC 应用程序服务器。
为了减少数据流量(在轮询事件时),我正在尝试为某些(!)特定方法实现"长轮询"机制。为此,我需要仅将这些调用的"全局请求超时"值更改为"无超时",这与全局超时值(例如 3 秒)不同。不幸的是,我认为没有这样做的可能性,而无需为每个请求销毁和重新创建全局客户端实例(xmlrpc_client_cleanup/xmlrpc_client_init2!!!我认为这不是一个好的解决方案。
有没有人经历过使用 XML-RPC over CURL 实现"长轮询"的经验?
提前谢谢你!麦克斯
感谢布莱恩·亨德森!!
我能想到两件事。
首先,您不必使用全局 XML-RPC 客户端。 你可以 有两个专用客户端 - 将一个用于常规 XML-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
"私人客户"的想法为我做到了!!
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- 为什么使用 "this" 指针调用派生成员函数?
- 函数调用中参数的顺序重要吗
- 由于某种原因,客户端未调用服务器 RPC
- 识别 capnproto RPC 中的调用方
- 跟踪 gRPC 服务器C++中的所有 RPC 调用
- C 中的远程过程调用(RPC):在硬编码端点时,可以多个客户端侦听一台服务器
- XML文件中的动态变量和函数调用
- 从我的c++应用程序调用c#dll(解析XML文件),将数组/列表返回给c++
- 舍入一个double并通过XML-RPC发送
- 如何缩短Windows RPC调用超时
- 如何仅更改某些特定 XML-RPC 调用的超时
- 解压缩存储为数组(目标:RPC)的可变模板函数调用的数据
- 非阻塞RPC调用,使用gSoap
- 在协议缓冲区中注释推送rpc调用
- XML RPC - 如何在C++版本的 XMLRPC-C 库中包装、返回和获取 vector<map<string、string> > 的对象?
- Java XML RPC客户端和服务器
- 从Win32 RPC调用返回字符串
- 不情愿地通过 RPC 调用 QueryInterface