From d1adcd464efcc30afa14e5dba955ac2fe10462c2 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Thu, 14 Dec 2023 02:27:14 +0800 Subject: [PATCH] fix(gw_jt808): client keepalive timer --- apps/emqx_gateway_gbt32960/src/emqx_gbt32960_channel.erl | 2 +- apps/emqx_gateway_jt808/src/emqx_jt808_channel.erl | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/emqx_gateway_gbt32960/src/emqx_gbt32960_channel.erl b/apps/emqx_gateway_gbt32960/src/emqx_gbt32960_channel.erl index 65a696a16..3f71f5a3a 100644 --- a/apps/emqx_gateway_gbt32960/src/emqx_gbt32960_channel.erl +++ b/apps/emqx_gateway_gbt32960/src/emqx_gbt32960_channel.erl @@ -416,7 +416,7 @@ handle_info({sock_closed, Reason}, Channel = #channel{conn_state = disconnected} log(error, #{msg => "unexpected_sock_closed", reason => Reason}, Channel), {ok, Channel}; handle_info(Info, Channel) -> - log(error, #{msg => "unexpected_info}", info => Info}, Channel), + log(error, #{msg => "unexpected_info", info => Info}, Channel), {ok, Channel}. %%-------------------------------------------------------------------- diff --git a/apps/emqx_gateway_jt808/src/emqx_jt808_channel.erl b/apps/emqx_gateway_jt808/src/emqx_jt808_channel.erl index 45b85f92e..e78d6667e 100644 --- a/apps/emqx_gateway_jt808/src/emqx_jt808_channel.erl +++ b/apps/emqx_gateway_jt808/src/emqx_jt808_channel.erl @@ -48,7 +48,7 @@ %% AuthCode authcode :: undefined | anonymous | binary(), %% Keepalive - keepalive, + keepalive :: maybe(emqx_keepalive:keepalive()), %% Msg SN msg_sn, %% Down Topic @@ -188,7 +188,7 @@ init( conn_state = idle, timers = #{}, authcode = undefined, - keepalive = maps:get(keepalive, Options, ?DEFAULT_KEEPALIVE), + keepalive = undefined, msg_sn = 0, % TODO: init rsa_key from user input dn_topic = maps:get(dn_topic, ProtoConf, ?DEFAULT_DN_TOPIC), @@ -475,6 +475,9 @@ handle_info( handle_info({sock_closed, Reason}, Channel = #channel{conn_state = disconnected}) -> log(error, #{msg => "unexpected_sock_closed", reason => Reason}, Channel), {ok, Channel}; +handle_info({keepalive, start, Interval}, Channel) -> + NChannel = Channel#channel{keepalive = emqx_keepalive:init(Interval)}, + {ok, ensure_timer(alive_timer, NChannel)}; handle_info(Info, Channel) -> log(error, #{msg => "unexpected_info", info => Info}, Channel), {ok, Channel}.