Kitura

作者: 小凿子 | 来源:发表于2017-01-27 17:33 被阅读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

相关文章

  • Kitura

    Kitura是IBM开发的一个Web框架 本系列文章主要用于学习Kitura源码,关于如何使用Kitura请参见I...

  • Kitura的IO

    背景知识 关于同步/异步,阻塞/非阻塞的解释除了参见《Unix网络编程》之外,知乎中,“愚蠢”和“大姚”分别进行了...

  • Kitura的多线程

    在Nginx中,由Master进程管理多个Worker进程,而每一个连接是由一个Worker进程处理的。Nginx...

  • Swift服务器开发之Vapor

    前言:Swift服务器开发,主要有四个框架perfect,vapor,kitura,zewo它们之间的优异和区别,...

  • Swift Perfect服务器开发(解决一切疑难杂症)

    目前Swift服务器开发,主要有四个框架perfect,vapor,kitura,zewo它们之间的优异和区别,各...

  • cocoapods填坑

    前段时间要学习Kitura的时候,clone代码,git install发现出现一个大错误~ 这是什么鬼?!!! ...

网友评论

      本文标题:Kitura

      本文链接:https://www.haomeiwen.com/subject/cbfxmttx.html