Kitura

Kitura是IBM开发的一个Web框架

本系列文章主要用于学习Kitura源码,关于如何使用Kitura请参见IBM教程

需要对Swift 3.0、其他Web框架有一定了解

KituraNet模块主要类图如下所示

一次完整的HTTP请求流程如下:

1、HTTPServer创建一个Socket,Socket监听端口号

2、当客户端发来请求时调用SocketManager的handle函数

    1)socket.setBlocking(mode: false)

    2)新建一个 IncomingHTTPSocketProcessor

        a、新建PseudoSynchronousReader

        a、新建HTTPRequest

        b、新建HTTPResponse

    3)新建一个 IncomingSocketHandler

        a、用Socket新建一个DispatchSourceRead,设置setEventHandler

3、请求到达时,在EventHandler里socket把数据读到buffer里,processor处理buffer

4、request解析buffer(解析函数的实现在HTTPIncomingMessage中),返回status

5、最后调用ServerDelegate的handle函数

6、main函数,用户新建的Router作为Server的Delegate

    a、新建RouterRequest

   b、新建RouterResponse

    c、由RouterElementWalker把Request分发到各个RouterElement

7、RouterElement匹配每一个RouterMiddleware

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容