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