1. 客户端和服务器的连接
客户端通过socket连接服务器的session,session会启动一个对应角色的avatar,每个avatar就是一个进程,avatar接受分析session的消息,调用对应的模块完成数据的修改,avatar将需要反馈的结果传给session,session再传给客户端。
2. 监听器ranch
- session也是一个监听器,用ranch监听。ranch是一个用于处理套接字的网络库(使用tcp协议)。监听器通过调用:ranch.start_listener/6启动,在此之前启用ranch应用 :ok = :ranch.accept_ack/1
- :ranch.start_listener/6参数:
(@config[:listener_name],
@config[:acceptors],
@config[:transport_type],
@config[:transport_options],
TcpServer.ConnectionWorker,
[ ])
3. session对接收协议处理:
start_link/4,