%%%------------------------------------------------------------------- %% @doc power_gateway public API %% @end %%%------------------------------------------------------------------- -module(power_gateway_app). -behaviour(application). -export([start/2, stop/1]). start(_StartType, _StartArgs) -> SupResult = power_gateway_sup:start_link(), start_http_server(), SupResult. stop(_State) -> ok. %% internal functions start_http_server() -> {ok, Props} = application:get_env(power_gateway, http_server), Acceptors = proplists:get_value(acceptors, Props, 50), MaxConnections = proplists:get_value(max_connections, Props, 10240), Backlog = proplists:get_value(backlog, Props, 1024), Port = proplists:get_value(port, Props), Dispatcher = cowboy_router:compile([ {'_', [ %{"/api/[...]", http_protocol, [http_push_handler]} ]} ]), TransOpts = [ {port, Port}, {num_acceptors, Acceptors}, {backlog, Backlog}, {max_connections, MaxConnections} ], {ok, Pid} = cowboy:start_clear(http_listener, TransOpts, #{env => #{dispatch => Dispatcher}}), lager:debug("[iot_app] the http server start at: ~p, pid is: ~p", [Port, Pid]).