【发布时间】:2011-03-18 03:15:02
【问题描述】:
我有一个处理各种不同命令的远程服务器,其中一个是事件获取方法。
如果队列中列出了 1 个或多个事件可供处理,则事件获取会立即返回。如果事件队列为空,则此方法在超时几秒后才会返回。这样我就不会遇到任何 HTTP/socket 超时。一旦事件变得可用,该方法就会立即返回。这样,客户端只与服务器建立连接,而服务器不必与客户端建立任何连接。 这种事件机制运作良好。我正在使用 boost 库来处理队列、事件通知等。
这就是问题所在。当服务器阻止从事件获取方法返回时,在此期间,我无法发出任何其他命令。 在源代码 XmlRpcDispatch.cpp 中,我在“work”方法中看到了一个简单的循环,它使用阻塞调用来“select”。 好像在处理一个方法很忙时,没有处理其他请求。
问题:我没有看到什么,XmlRpcpp (xmlrpc++) 可以异步处理多个请求吗?有谁知道用于 C++ 的更好的 xmlrpc 库?我不认为 Boost 库有一个组件可以让我发出远程命令? 我实际上并不关心 XML 或 over-HTTP 功能。我只需要通过 TCP 以任何形式或形式发出(异步)命令吗? 我期待任何人提供的任何意见。
【问题讨论】: