使用libevent读取连续的HTTP流并在随机时间发送数据

using libevent to read a continuous http stream and sending data at random times

本文关键字:随机 时间 数据 读取 libevent 连续 HTTP 使用      更新时间:2023-10-16

首先我想我需要说我还在学习c++,所以如果这是盲目的明显/简单,我很抱歉。

我试图在我的c++程序中使用libevent库(通过尝试我已经在示例文件夹中查看了代码并测试了一些)来消费http流。我想知道是否有人可以为我提供一个例子,我如何去连接到一个URL,例如live.domain.com,发送适当的标题,读取返回的数据,并通过相同的连接发送数据回…我不确定libevent是否有任何阻塞连接,但只是为了明确,我在非阻塞样本之后。

为什么我要这样做?

我正在使用一个API,它需要你打开一个连接,它保持它活着,除非有一个错误。它将定期向连接的客户端发送状态文本,直到在同一连接上接收到带有ID的字符串。此时,它开始发送关于给定ID的数据。我不完全确定在初始请求后通过相同的连接发送数据是否严格符合要求,但这是服务器期望的,所以它会工作……如果我知道

Thanks in advance

恶心。考虑到这不是真正的HTTP,我不认为您会乐于使用HTTP库—即使您在经历了许多挫折之后今天使它正常工作,它明天也很容易被破坏。这是非常罕见的,不支持的特性。

但是…听起来也很简单,您可以使用libevent打开一个原始TCP连接,手动发送一些看起来像HTTP请求的东西,然后从那里使用原始套接字处理它。无论如何,您都不想要HTTP库为您提供的额外功能(额外的传输/内容编码,代理支持,SSL,与其他协议版本的兼容性,…)

至于例子,看一下活页书。特别是,"普通HTTP v0客户端"似乎非常接近您想要的。好运!