-define(APP, emqx_tcp).
%% 65535 Bytes 最大报文定义
-define(MAX_PACKET_SIZE, 16#ffff).
%% 协议版本
-define(TCP_PROTO_V1, 1).
%% tcp 连接报文{客户id,连接保活,用户,密码,版本}
-record(tcp_packet_conn, {client_id, keepalive, username, password, version}).
%% tcp连接回复报文
-record(tcp_packet_connack, {code, msg}).
%% tcp数据报文{长度,数据内容}
-record(tcp_packet_datatrans, {length, data}).
%% ping报文
-record(tcp_packet_ping, {}).
%% pong报文
-record(tcp_packet_pong, {}).
%% 断开连接报文
-record(tcp_packet_disconn, {}).
%% 定义数据帧根据Pkt连判断是什么报文
-define(FRAME_TYPE(Pkt), begin
case tuple_to_list(Pkt) of
[tcp_packet_conn|_] -> conn;
[tcp_packet_connack|_] -> connack;
[tcp_packet_datatrans|_] -> datatrans;
[tcp_packet_ping|_] -> ping;
[tcp_packet_pong|_] -> pong;
[tcp_packet_disconn|_] -> disconn
end
end).
%%------------------------------------------------------------------------------
%% Protocols Defination
-define(FRAME_TYPE_CONN, 1). %% 连接
-define(FRAME_TYPE_CONNACK, 2). %% 连接确认
-define(FRAME_TYPE_DATATRANS, 3). %% 数据传输
-define(FRAME_TYPE_PING, 4).
-define(FRAME_TYPE_PONG, 5).
-define(FRAME_TYPE_DISCON, 6). %% 断开连接
-define(CONNACK_SUCCESSFUL, 0). %% 成功
-define(CONNACK_AUTHFAILED, 1). %% 授权失败
-define(CONNACK_ILLEGALVER, 2). %% 非法
从emqx_tcp_app 开发分析,然后分析emqx-tcp.hrl 头文件,接下来分析emqx_tcp_sup.erl 模块。