【问题标题】:How to change the timeout only for some specific XML-RPC calls如何仅为某些特定的 XML-RPC 调用更改超时
【发布时间】:2015-01-11 19:36:00
【问题描述】:

我在 1.25.23 版中使用用于 C/C++(通过 CURL)客户端库的 XML-RPC 来:

  • 发送数据到 ...

  • ...
  • 接收(投票)事件

...XML-RPC 应用服务器。

为了减少数据流量(在轮询事件时),我正在尝试为某些(!)特定方法实现“长轮询”机制。为此,我需要仅将那些调用更改为“无超时”的“全局请求超时”值,这与全局超时值不同(例如 3 秒)。不幸的是,我看不到这样做的可能性,而无需为每个请求销毁和重新创建全局客户端实例(xmlrpc_client_cleanup / xmlrpc_client_init2)!!!!我认为这不是一个好的解决方案。

有没有人在通过 CURL 使用 XML-RPC 实现“长轮询”的经验?

提前谢谢你! 最大

【问题讨论】:

    标签: c++ curl xml-rpc long-polling


    【解决方案1】:

    感谢布莱恩·亨德森!!

    我能想到两件事。

    首先,您不必使用全局 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

    “私人客户”的想法为我做到了!!!

    【讨论】:

      猜你喜欢
      • 2021-07-30
      • 2013-11-26
      • 1970-01-01
      • 2021-06-05
      • 2014-02-13
      • 1970-01-01
      • 2016-05-09
      • 2013-12-21
      • 2021-01-09
      相关资源
      最近更新 更多