您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
SisMaker b6ab6919a5 ft: 代码修改 3 年前
include ft: 代码修改 3 年前
priv ft: 代码修改 3 年前
src ft: 代码修改 3 年前
.gitignore ft: 代码修改 3 年前
LICENSE ft: 初始化提交 3 年前
README.md ft: 代码修改 3 年前
rebar.config ft: 代码修改 3 年前

README.md

eWSrv

otp22+ An erlang's http1.1 server

Build

$ rebar3 compile

Usage

$ rebar3 shell
%% starting elli
1 > {ok, Pid} = elli:start_link([{callback, elli_example_callback}, {port, 3000}]).

Examples

Callback Module

The best source to learn how to write a callback module is src/elli_example_callback.erl and its generated documentation. There are a bunch of examples used in the tests as well as descriptions of all the events.

A minimal callback module could look like this:

-module(elli_minimal_callback).
-export([handle/2, handle_event/3]).

-include_lib("elli/include/eWSrv.hrl").
-behaviour(wsHer).

handle(Req, _Args) ->
   %% Delegate to our handler function
   handle(Req#req.method, wsReq:path(Req), Req).

handle('GET', [<<"hello">>, <<"world">>], _Req) ->
   %% Reply with a normal response. `ok' can be used instead of `200'
   %% to signal success.
   {ok, [], <<"Hello World!">>};

handle(_, _, _Req) ->
   {404, [], <<"Not Found">>}.

%% @doc Handle request events, like request completed, exception
%% thrown, client timeout, etc. Must return `ok'.
handle_event(_Event, _Data, _Args) ->
   ok.

Supervisor Childspec

To add elli to a supervisor you can use the following example and adapt it to your needs.

-module(fancyapi_sup).
-behaviour(supervisor).
-export([start_link/0]).
-export([init/1]).

start_link() ->
   supervisor:start_link({local, ?MODULE}, ?MODULE, []).

init([]) ->
   ElliOpts = [{callback, fancyapi_callback}, {port, 3000}],
   ElliSpec = {
      fancy_http,
      {elli, start_link, [ElliOpts]},
      permanent,
      5000,
      worker,
      [elli]},

   {ok, {{one_for_one, 5, 10}, [ElliSpec]}}.

Further Reading

For more information about the features and design philosophy of elli check out the overview.