请教如何使用 CFNetwork 来实现异步发出多个流式请求且能够返回流式数据

15次阅读

共计 835 个字符,预计需要花费 3 分钟才能阅读完成。

先叠个甲,本人第一次在 V2EX 发布主题,而且可能技术不精,代码水平比较低但是还是希望能够尝试学习一下,所以请大家多多包涵,非常感谢!

我正在尝试使用 Rust 语言实现一个利用系统自带的 HTTP 客户端框架的 HTTP 异步请求框架,名字叫做 ALHC(开源)

考虑在 Windows 上使用 WinHTTP 库,在 macOS 上使用 CFNetwork 库,在 Linux 上想动态调用 libcurl(不过还没有开始做这个部分)

而在给 macOS 上编写实现时遇到了问题:

  • 请求绝大多数异常缓慢,通常第一个请求结束后就难以继续后续的请求了
  • 尝试使用流式发送数据时一旦超出使用 CFStreamCreateBoundPair 创建流的时候传入的容量值(transferBufferSize)则会卡死而无法继续发送
  • 无法以流式数据的方式发送请求(原因如上)

我已经尽力去查询了有关的信息,但是还是没有琢磨清楚,可以看看我找到的各种文档,希望能有所帮助:

如果有大佬能够鼎力相助的话感激不尽!

正文完
 0