diff --git a/apps/emqx/src/emqx_listeners.erl b/apps/emqx/src/emqx_listeners.erl index 411caeea9..3c132f335 100644 --- a/apps/emqx/src/emqx_listeners.erl +++ b/apps/emqx/src/emqx_listeners.erl @@ -183,8 +183,10 @@ do_start_listener(quic, ListenerName, #{bind := ListenOn} = Opts) -> , {key, maps:get(keyfile, Opts)} , {alpn, ["mqtt"]} , {conn_acceptors, maps:get(acceptors, Opts, DefAcceptors)} - , {idle_timeout_ms, emqx_config:get_zone_conf(zone(Opts), - [mqtt, idle_timeout])} + , {idle_timeout_ms, lists:max([ + emqx_config:get_zone_conf(zone(Opts), [mqtt, idle_timeout]) * 3 + , timer:seconds(maps:get(idle_timeout, Opts))] + )} ], ConnectionOpts = #{ conn_callback => emqx_quic_connection , peer_unidi_stream_count => 1