From 2e30d7803f572808e234523725bd6f22050d3031 Mon Sep 17 00:00:00 2001 From: wwhai Date: Fri, 26 Mar 2021 16:56:00 +0800 Subject: [PATCH] fix(channel): fix `keep-alive` problem --- src/emqx_channel.erl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/emqx_channel.erl b/src/emqx_channel.erl index 267101a9c..321d05bd4 100644 --- a/src/emqx_channel.erl +++ b/src/emqx_channel.erl @@ -1545,8 +1545,11 @@ init_alias_maximum(_ConnPkt, _ClientInfo) -> undefined. %%-------------------------------------------------------------------- %% Enrich Keepalive -ensure_keepalive(#{'Server-Keep-Alive' := Interval}, Channel) -> - ensure_keepalive_timer(Interval, Channel); +%% MQTT 5 +ensure_keepalive(#{'Server-Keep-Alive' := Interval}, Channel = #channel{conninfo = ConnInfo}) -> + ensure_keepalive_timer(Interval, Channel#channel{conninfo = ConnInfo#{keepalive => Interval}}); + +%% MQTT 3,4 ensure_keepalive(_AckProps, Channel = #channel{conninfo = ConnInfo}) -> ensure_keepalive_timer(maps:get(keepalive, ConnInfo), Channel).