Kitura

2017-01-27  本文已影响0人  小凿子

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

上一篇 下一篇

猜你喜欢

热点阅读