%%%------------------------------------------------------------------- %%% @author anlicheng %%% @copyright (C) 2025, %%% @doc %%% 扩展部分, 1: 支持基于topic的pub/sub机制; 2. 基于target的单点通讯和广播 %%% @end %%% Created : 21. 4月 2025 17:28 %%%------------------------------------------------------------------- -author("anlicheng"). %% efka主动发起的消息体类型, 消息大类 -define(PACKET_REQUEST, 16#01). -define(PACKET_RESPONSE, 16#02). %% efka主动发起不需要返回的数据 -define(PACKET_CAST, 16#03). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% 二级分类定义 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 主机端上报数据类型标识 -define(MESSAGE_AUTH_REQUEST, 16#01). -define(MESSAGE_AUTH_REPLY, 16#02). -define(MESSAGE_COMMAND, 16#03). -define(MESSAGE_DEPLOY, 16#04). -define(MESSAGE_PUB, 16#05). -define(MESSAGE_DATA, 16#06). -define(MESSAGE_EVENT, 16#07). %% efka主动上报的event-stream流, 单向消息,主要是: docker-create的实时处理逻辑上报 -define(MESSAGE_EVENT_STREAM, 16#08). -define(MESSAGE_JSONRPC_REQUEST, 16#F0). -define(MESSAGE_JSONRPC_REPLY, 16#F1). %%%% 命令类型子分类, 不需要返回值 %% 授权 -define(COMMAND_AUTH, 16#08). -record(auth_request, { uuid :: binary(), username :: binary(), salt :: binary(), token :: binary(), timestamp :: integer() }). -record(auth_reply, { code :: integer(), payload :: binary() }). -record(pub, { topic :: binary(), qos = 0 :: integer(), content :: binary() }). -record(command, { command_type :: integer(), command :: binary() }). -record(jsonrpc_request, { method :: binary(), params = <<>> :: any() }). -record(jsonrpc_reply, { result :: any() | undefined, error :: any() | undefined }). -record(data, { route_key :: binary(), metric :: binary() }). -record(task_event_stream, { task_id :: integer(), type :: binary(), stream :: binary() }).