COWBOY是erlang的一个成功的开源库,学习的人也很多,本人学习erlang,就拿此库过来练练手。
COWBOY库也可以称之为COWBOY app,其启动依赖于cowlib,ranch,cryto这3个app,此3个app中对于ranch app也有过研究,之前也写过其分析文章,这里不再过多描述。
先看看COWBOY app的进程树情况
上面的图没有处理好,见谅!
看到上面的cowboy进程树,cowboy进程树没有对tcp连接,管理的操作的实现,tcp的连接管理等实现都由ranch实现。
cowboy负责对接收到的数据进行解析->处理(回调用户实现的接口)->响应(由客户调用)
每接收到一个连接,则创建一个cowboy进程,对此连接的数据进行处理。
所以可以得出:每一个cowboy进程表示一个用户的连接。每一个进程的流程则代表依次请求的完整过程。
一下流程图可以查看cowboy对于请求数据的处理
cowboy的大概情况就介绍到这里,后续使用的还会有更加深入的体会,到时再和大家分享。
原文:http://blog.csdn.net/zp752963831/article/details/25598645