1、本模块是建立tcp socket 连接进程模块,主要牵涉启动服务端socket服务,然后等待客户socket连接,然后针对每个进来的客户端进行进程分裂。
2、本模块牵涉到两个主要的模块emqx_tcp_protocol 协议 和 emqx_tcp_frame 数据帧
?2、提供统计不同的客户端socket的消息进出
3、查询客户socket的相关信息
4、客户端消息主题跨节点投递
5、提供禁止客户端连接,客户端限速等接口服务
-module(emqx_tcp_connection).
-export([logger_header/0]).
-behaviour(gen_statem).
-include("/emqx_tcp/include/emqx_tcp.hrl").
%% tcp连接报文
-record(tcp_packet_conn,
{client_id, keepalive, username, password, version}).
%% 连接回复报文
-record(tcp_packet_connack, {code, msg}).
%% tcp数据报文{长度,数据内容}
-record(tcp_packet_datatrans, {length, data}).
-record(tcp_packet_ping, {}).
-record(tcp_packet_pong, {}).
%% tcp连接断开报文
-record(tcp_packet_disconn, {}).
-include("/emqx/include/emqx.hrl").
%% 订阅数据结构{主题,订阅id,订阅配置}
-record(subscription, {topic, subid, subopts}).
%% 消息定义
-record(message,{
id :