【发布时间】:2015-08-17 11:56:52
【问题描述】:
在我的 C++ 应用程序中,我使用 epoll 实现了“Reactor”设计模式。我有 Reactor 类,我在其中注册了所有 Fd(socketFd/EventFd/TimerFd)和相应的处理程序函数。当应用程序启动时,我运行 Reactor 的事件循环。
在这个应用程序中,我必须发送 https 请求并处理收到的 https 响应。现在我正在使用CurlPP(libcurl c++ 包装器)发送这个 https 请求。但这些是同步和阻塞调用。这妨碍了我的表现。
现在我想使用我的 Reactor 类异步处理这些 https 请求/响应。为此,我将创建本机套接字并连接到 http 服务器。在 Reactor 中注册这个 socketFd 和相应的处理函数。
要在本机套接字上发送 https 请求,我需要一些库,它将 https 有效负载作为输入并返回 https(SSL 加密)http 请求。这样我就可以直接在本机套接字上编写这个 https 请求了。
处理 https 响应的方法相同。套接字上的 read/recv 调用将返回缓冲区。我需要一些库来接收这个缓冲区并给我接收到的 https 有效负载。
我确实检查了 libcurl 中可用的 API。但是 libcurl 没有提供这样的功能。它确实具有多句柄功能,但套接字的控制是由 libcurl 本身来控制的。
您能否推荐任何可以为我提供此类功能的库?另外,如果您有任何其他方法来异步处理这些 https 请求,那么也请提出建议。
【问题讨论】:
标签: c++ sockets asynchronous