diff --git a/apps/efka/src/iot/efka_iot_client.erl b/apps/efka/src/iot/efka_iot_client.erl index 2701ebd..d12fbdf 100644 --- a/apps/efka/src/iot/efka_iot_client.erl +++ b/apps/efka/src/iot/efka_iot_client.erl @@ -189,14 +189,13 @@ handle_event({call, From}, dropped_message_count, _StateName, State = #state{dro {keep_state, State, [{reply, From, DroppedCount}]}; %% 异步建立到服务器的连接 -handle_event(info, {timeout, _, create_transport}, ?STATE_DISCONNECTED, State) -> +handle_event(info, {timeout, _, create_transport}, ?STATE_DISCONNECTED, State = #state{next_pkt_id = PktId}) -> case connect_socket() of {ok, Socket} -> - {Ref, State1} = next_packet_id(State), - AuthPacket = auth_packet(Ref), + AuthPacket = auth_packet(PktId), ok = ssl:send(Socket, AuthPacket), - logger:debug("[efka_iot_client] send auth request, ref: ~p", [Ref]), - {next_state, ?STATE_AUTH, State1#state{socket = Socket, auth_ref = Ref}, [{state_timeout, 5000, auth_timeout}]}; + logger:debug("[efka_iot_client] send auth request, packet_id: ~p", [PktId]), + {next_state, ?STATE_AUTH, State#state{socket = Socket, auth_ref = PktId, next_pkt_id = PktId + 1}, [{state_timeout, 5000, auth_timeout}]}; {error, _Reason} -> schedule_reconnect(), {keep_state, State#state{socket = undefined}} @@ -452,10 +451,6 @@ decode_pb_frame(Payload, MsgName) -> {error, {bad_protobuf, MsgName, Class, Reason}} end. --spec next_packet_id(#state{}) -> {pos_integer(), #state{}}. -next_packet_id(State = #state{next_pkt_id = PacketId}) -> - {PacketId, State#state{next_pkt_id = PacketId + 1}}. - -spec connect_socket() -> {ok, ssl:sslsocket()} | {error, term()}. connect_socket() -> {ok, Props} = application:get_env(efka, iot_server), @@ -733,4 +728,4 @@ to_bool(1) -> to_bool(false) -> false; to_bool(0) -> - false. + false. \ No newline at end of file