diff --git a/src/quic/sdlan_quic_transport.erl b/src/quic/sdlan_quic_transport.erl index 6ed166f..4349fce 100644 --- a/src/quic/sdlan_quic_transport.erl +++ b/src/quic/sdlan_quic_transport.erl @@ -11,6 +11,7 @@ -include("sdlan_pb.hrl"). -behaviour(gen_statem). +-behaviour(sdlan_transport). %% 心跳包监测机制 -define(STREAM_ACTIVE_N, 100). diff --git a/src/sdlan_network.erl b/src/sdlan_network.erl index 680435e..5675f9a 100644 --- a/src/sdlan_network.erl +++ b/src/sdlan_network.erl @@ -118,7 +118,7 @@ command(Pid, ReceiverPid, ClientId, SubCommand) when is_pid(Pid), is_pid(Receive -spec wait_command_ack(Ref :: reference(), Timeout :: integer()) -> {error, timeout} | {ok, CommandAck :: #'SDLCommandAck'{}}. wait_command_ack(Ref, Timeout) when is_reference(Ref), is_integer(Timeout) -> receive - {quic_command_ack, Ref, CommandAck} -> + {command_ack, Ref, CommandAck} -> {ok, CommandAck} after Timeout -> {error, timeout} diff --git a/src/sdlan_session.erl b/src/sdlan_session.erl index 08f691c..2b0e93f 100644 --- a/src/sdlan_session.erl +++ b/src/sdlan_session.erl @@ -287,7 +287,7 @@ handle_frame(<>, Session = #session{status = r {{Ref, ReceiverPid}, RestPendingCommands} ?= maps:take(PktId, PendingCommands), case is_process_alive(ReceiverPid) of true -> - ReceiverPid ! {quic_command_ack, Ref, CommandAck}; + ReceiverPid ! {command_ack, Ref, CommandAck}; false -> ok end, diff --git a/src/sdlan_transport.erl b/src/sdlan_transport.erl new file mode 100644 index 0000000..782fa6a --- /dev/null +++ b/src/sdlan_transport.erl @@ -0,0 +1,10 @@ +%%%------------------------------------------------------------------- +%%% @doc Behaviour for client transport modules. +%%% @end +%%%------------------------------------------------------------------- +-module(sdlan_transport). + +-callback send_event(Pid :: pid(), Event :: binary()) -> ok. +-callback command(Pid :: pid(), Ref :: reference(), ReceiverPid :: pid(), SubCommand :: {Tag :: atom(), SubCommand :: any()}) -> ok. +-callback stop(Pid :: pid(), Reason :: term()) -> ok. +-callback debug_info(Pid :: pid()) -> map(). diff --git a/src/ssl/sdlan_ssl_transport.erl b/src/ssl/sdlan_ssl_transport.erl index cd7df08..f7843fd 100644 --- a/src/ssl/sdlan_ssl_transport.erl +++ b/src/ssl/sdlan_ssl_transport.erl @@ -12,6 +12,7 @@ -behaviour(gen_statem). -behaviour(ranch_protocol). +-behaviour(sdlan_transport). %% Ranch protocol callback -export([start_link/4]).