diff --git a/mqtt/verne/src/mfx_grpc.erl b/mqtt/verne/src/mfx_grpc.erl index 8e1ea1a0..576fb659 100644 --- a/mqtt/verne/src/mfx_grpc.erl +++ b/mqtt/verne/src/mfx_grpc.erl @@ -88,6 +88,7 @@ handle_cast(_Request, State) -> handle_info(_Info, State) -> {noreply, State}. -terminate(_Reason, _State) -> - []. +terminate(Reason, #state{conn = GrpcConn} = State) -> + grpc_client:stop(GrpcConn), + {stop, Reason, State}. diff --git a/mqtt/verne/src/mfx_nats.erl b/mqtt/verne/src/mfx_nats.erl index 5248b564..0428d81a 100644 --- a/mqtt/verne/src/mfx_nats.erl +++ b/mqtt/verne/src/mfx_nats.erl @@ -49,8 +49,9 @@ handle_cast({publish, Subject, Message}, #state{conn = NatsConn} = State) -> handle_info(_Info, State) -> {noreply, State}. -terminate(_Reason, _State) -> - []. +terminate(Reason, #state{conn = NatsConn} = State) -> + nats:disconnect(NatsConn), + {stop, Reason, State}. subscribe(NatsConn) -> Subject = <<"channel.>">>, diff --git a/mqtt/verne/src/mfx_redis.erl b/mqtt/verne/src/mfx_redis.erl index 74bbcb60..129a7b51 100644 --- a/mqtt/verne/src/mfx_redis.erl +++ b/mqtt/verne/src/mfx_redis.erl @@ -42,5 +42,6 @@ handle_cast({publish, Message}, #state{conn = RedisConn} = State) -> handle_info(_Info, State) -> {noreply, State}. -terminate(_Reason, _State) -> - []. +terminate(Reason, #state{conn = RedisConn} = State) -> + eredis:stop(RedisConn), + {stop, Reason, State}.