diff --git a/apps/sdlan/src/quic/sdlan_quic_channel.erl b/apps/sdlan/src/quic/sdlan_quic_channel.erl index 4756f42..bc3333f 100644 --- a/apps/sdlan/src/quic/sdlan_quic_channel.erl +++ b/apps/sdlan/src/quic/sdlan_quic_channel.erl @@ -99,25 +99,19 @@ handle_event(internal, do_init, initializing, State=#state{conn = Conn}) -> {ok, _} = quicer:async_accept_stream(Conn, #{active => true}), {next_state, waiting_stream, State}; -handle_event(info, Info, waiting_stream, State=#state{conn = Conn, max_packet_size = MaxPacketSize, heartbeat_sec = HeartbeatSec}) -> - logger:debug("[sdlan_quic_channel] call do_init of info: ~p", [Info]), - case quicer:accept_stream(Conn, #{active => true}) of - {ok, Stream} -> - %% 发送欢迎消息 - WelcomePkt = sdlan_pb:encode_msg(#sdl_welcome{ - version = 1, - max_bidi_streams = 1, - max_packet_size = MaxPacketSize, - heartbeat_sec = HeartbeatSec - }), - quic_send(Stream, <>), - logger:debug("[sdlan_quic_channel] get stream: ~p, send welcome", [Stream]), +handle_event(info, {quic, new_stream, Stream, Opts}, waiting_stream, State=#state{conn = Conn, max_packet_size = MaxPacketSize, heartbeat_sec = HeartbeatSec}) -> + logger:debug("[sdlan_quic_channel] call new_stream: ~p, opts: ~p", [Stream, Opts]), + %% 发送欢迎消息 + WelcomePkt = sdlan_pb:encode_msg(#sdl_welcome{ + version = 1, + max_bidi_streams = 1, + max_packet_size = MaxPacketSize, + heartbeat_sec = HeartbeatSec + }), + quic_send(Stream, <>), + logger:debug("[sdlan_quic_channel] get stream: ~p, send welcome", [Stream]), - {next_state, initialized, State#state{stream = Stream}}; - {error, Reason} -> - logger:error("[sdlan_quic_channel] accept stream failed: ~p", [Reason]), - {stop, Reason, State} - end; + {next_state, initialized, State#state{stream = Stream}}; handle_event(info, {frame, <>}, initialized, State=#state{stream = Stream}) -> #sdl_register_super{