一个 HTTP 协议解析器 (也就是一个 NWProtocolFramer) ,用于 Apple 的 Network 框架。
其工作原理在我的博客文章中描述:Network.framework 服务器入门。
Network.framework 需要 iOS 13+ / macOS 10.15+。
这部分代码有意保持非常简单和基础。例如,它没有为 HTTP 请求等定义 Swift 类型,而是将状态/请求/URI 放置在普通的 Message 元数据字段中。
该协议只是封装了 (嵌入式的) http_parser.c/h
,它是作为 Node.js 项目的一部分开发的。
它还包括 NWHTTPServer
,一个基于 NWHTTPProtocol
的非常简单的 HTTP 服务器。
示例
let server = HTTPServer { request, response in
print("Received:", request)
try response.send("Hello!\n")
}
server.run()
请注意,对于生产用途,我建议不要对 HTTP 使用协议构建器。而是将 http_parser.c
连接到普通的 Network.framework (如博客文章中针对 echo 所示)。至少我在生产应用中是这样做的。 NW 协议构建对于 http_parser.c 来说并不是真正必需的,因为它已经完成了所有必要的构建,并且可以异步提供。
NWHTTPProtocol 由 ZeeZide 提供。 我们喜欢 反馈、GitHub 星星、酷炫的合约工作,以及任何你能想到的赞美方式。