NWHTTPProtocol

Swift5 macOS iOS

一个 HTTP 协议解析器 (也就是一个 NWProtocolFramer) ,用于 Apple 的 Network 框架。

其工作原理在我的博客文章中描述:Network.framework 服务器入门

Network.framework 需要 iOS 13+ / macOS 10.15+。

这部分代码有意保持非常简单和基础。例如,它没有为 HTTP 请求等定义 Swift 类型,而是将状态/请求/URI 放置在普通的 Message 元数据字段中。

该协议只是封装了 (嵌入式的) http_parser.c/h,它是作为 Node.js 项目的一部分开发的。

NWHTTPServer

它还包括 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 来说并不是真正必需的,因为它已经完成了所有必要的构建,并且可以异步提供。

关于

NWHTTPProtocolZeeZide 提供。 我们喜欢 反馈、GitHub 星星、酷炫的合约工作,以及任何你能想到的赞美方式。