fix mqtt connect

This commit is contained in:
anlicheng 2025-11-17 17:35:11 +08:00
parent 0f4ad8e9f1
commit 1af2666272

View File

@ -19,7 +19,7 @@
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
%%
-define(RETRY_INTERVAL, 5000).
-define(RETRY_INTERVAL, 15000).
-define(DISCONNECTED, disconnected).
-define(CONNECTED, connected).
@ -111,21 +111,23 @@ handle_info({timeout, _, create_postman}, State = #state{buffer = Buffer, status
{retry_interval, 5000}
],
{ok, ConnPid} = emqtt:start_link(Opts),
lager:debug("[endpoint_mqtt] start connect, options: ~p", [Opts]),
case catch emqtt:connect(ConnPid, 5000) of
{ok, _} ->
lager:debug("[endpoint_mqtt] connect success, pid: ~p", [ConnPid]),
NBuffer = endpoint_buffer:trigger_n(Buffer),
{noreply, State#state{conn_pid = ConnPid, buffer = NBuffer, status = ?CONNECTED}};
{error, Reason} ->
lager:warning("[endpoint_mqtt] connect get error: ~p", [Reason]),
erlang:start_timer(5000, self(), create_postman),
{noreply, State};
Error ->
lager:warning("[endpoint_mqtt] connect get error: ~p", [Error]),
erlang:start_timer(5000, self(), create_postman),
{noreply, State}
try
{ok, ConnPid} = emqtt:start_link(Opts),
lager:debug("[endpoint_mqtt] start connect, options: ~p", [Opts]),
case emqtt:connect(ConnPid, 5000) of
{ok, _} ->
lager:debug("[endpoint_mqtt] connect success, pid: ~p", [ConnPid]),
NBuffer = endpoint_buffer:trigger_n(Buffer),
{noreply, State#state{conn_pid = ConnPid, buffer = NBuffer, status = ?CONNECTED}};
{error, Reason} ->
lager:warning("[endpoint_mqtt] connect get error: ~p", [Reason]),
erlang:start_timer(?RETRY_INTERVAL, self(), create_postman),
{noreply, State}
end
catch _:Error->
lager:warning("[endpoint_mqtt] connect get error: ~p", [Error]),
erlang:start_timer(?RETRY_INTERVAL, self(), create_postman),
{noreply, State}
end;
%% 线