light/apps/power_gateway/src/power_gateway_app.erl
2026-05-13 14:37:51 +08:00

45 lines
1.2 KiB
Erlang

%%%-------------------------------------------------------------------
%% @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]).