close listeners
This commit is contained in:
parent
b857f0c2c0
commit
f7d44f88f1
|
@ -26,9 +26,9 @@
|
|||
%%%-----------------------------------------------------------------------------
|
||||
-module(emqttd).
|
||||
|
||||
-author('feng@emqtt.io').
|
||||
-author("Feng Lee <feng@emqtt.io>").
|
||||
|
||||
-export([start/0, open/1, is_running/1]).
|
||||
-export([start/0, open/1, close/1, is_running/1]).
|
||||
|
||||
-define(MQTT_SOCKOPTS, [
|
||||
binary,
|
||||
|
@ -41,15 +41,17 @@
|
|||
-type listener() :: {atom(), inet:port_number(), [esockd:option()]}.
|
||||
|
||||
%%------------------------------------------------------------------------------
|
||||
%% @doc
|
||||
%% Start emqttd application.
|
||||
%%
|
||||
%% @doc Start emqttd application.
|
||||
%% @end
|
||||
%%------------------------------------------------------------------------------
|
||||
-spec start() -> ok | {error, any()}.
|
||||
start() ->
|
||||
application:start(emqttd).
|
||||
|
||||
%%------------------------------------------------------------------------------
|
||||
%% @doc Open Listeners
|
||||
%% @end
|
||||
%%------------------------------------------------------------------------------
|
||||
-spec open([listener()] | listener()) -> any().
|
||||
open(Listeners) when is_list(Listeners) ->
|
||||
[open(Listener) || Listener <- Listeners];
|
||||
|
@ -72,6 +74,17 @@ open(Protocol, Port, Options) ->
|
|||
MFArgs = {emqttd_client, start_link, [PktOpts]},
|
||||
esockd:open(Protocol, Port, emqttd_opts:merge(?MQTT_SOCKOPTS, Options) , MFArgs).
|
||||
|
||||
%%------------------------------------------------------------------------------
|
||||
%% @doc Close Listeners
|
||||
%% @end
|
||||
%%------------------------------------------------------------------------------
|
||||
-spec close([listener()] | listener()) -> any().
|
||||
close(Listeners) when is_list(Listeners) ->
|
||||
[close(Listener) || Listener <- Listeners];
|
||||
|
||||
close({Protocol, Port, _Options}) ->
|
||||
esockd:close({Protocol, Port}).
|
||||
|
||||
is_running(Node) ->
|
||||
case rpc:call(Node, erlang, whereis, [emqttd]) of
|
||||
{badrpc, _} -> false;
|
||||
|
|
|
@ -51,7 +51,7 @@ start(_StartType, _StartArgs) ->
|
|||
emqttd_mnesia:start(),
|
||||
{ok, Sup} = emqttd_sup:start_link(),
|
||||
start_servers(Sup),
|
||||
{ok, Listeners} = application:get_env(listen),
|
||||
{ok, Listeners} = application:get_env(listeners),
|
||||
emqttd:open(Listeners),
|
||||
register(emqttd, self()),
|
||||
print_vsn(),
|
||||
|
@ -127,13 +127,15 @@ supervisor_spec(Name, Opts) ->
|
|||
worker_spec(Name) ->
|
||||
{Name,
|
||||
{Name, start_link, []},
|
||||
permanent, 5000, worker, [Name]}.
|
||||
permanent, 10000, worker, [Name]}.
|
||||
worker_spec(Name, Opts) ->
|
||||
{Name,
|
||||
{Name, start_link, [Opts]},
|
||||
permanent, 5000, worker, [Name]}.
|
||||
permanent, 10000, worker, [Name]}.
|
||||
|
||||
-spec stop(State :: term()) -> term().
|
||||
stop(_State) ->
|
||||
{ok, Listeners} = application:get_env(listeners),
|
||||
emqttd:close(Listeners),
|
||||
ok.
|
||||
|
||||
|
|
Loading…
Reference in New Issue