Ranch浅析(1)-----简介

时间:2022-07-07 16:49:46

1. Ranch 是一个TCP Socket Acceptor 池,  它为我们封装了accept TCP连接的过程, 这样我们仅需要少量的代码就能够使用已经建立好的TCP连接。它是易用和低延迟   的, 很容易把它作为一个完整的应用,或者集成到你子集的应用中去。

2. Ranch提供模块化的设计, 允许为特定的Socket监听器制定不同的传输层和协议。, 监听器在一个端口上监听和管理连接, 并提供接口来限制并发连接的数量, 连   接被分类放入池中, 每个池有不同的上限限制。


3. 监听器

   监听器的职责是在指定的端口上监听连接的到来, 它管理一池的接收器进程, 接收器在一个循环内接收连接, 一旦接收到一个连接, 它就启动一个新的进程来执行   协议处理器的代码, 所有的Socket编程都是从协议处理器代码开始的。

4. 启动和停止

   Ranch本身并不做具体的事情, 它只是帮助应用开发者监听并接收连接, 启动一个监听器需要以下的设置:

   a)  监听器的名字

   b) 接收器的数量

   c) 传输层处理器以及相关选项(tcp, ssl).

   d) 协议层处理器以及相关选项

5.        启动例子

   ok = application:start(ranch).

   

   {ok, _} = ranch:start_listener(tcp_echo, 100,        ranch_tcp, [{port, 5555}],        echo_protocol, []   ).