diff options
author | Mariano Guerra <[email protected]> | 2015-12-22 14:11:42 +0000 |
---|---|---|
committer | Mariano Guerra <[email protected]> | 2015-12-22 14:11:42 +0000 |
commit | b3d7e9e10c4f2c28be67c455d0827334d9236c36 (patch) | |
tree | d3b8fee463b6b781306aa4bc657e72a6b79b6b9e | |
parent | a227184b3588f2b6e35cfe916d899ec945a1935b (diff) | |
download | bullet-b3d7e9e10c4f2c28be67c455d0827334d9236c36.tar.gz bullet-b3d7e9e10c4f2c28be67c455d0827334d9236c36.tar.bz2 bullet-b3d7e9e10c4f2c28be67c455d0827334d9236c36.zip |
allow shutdown on info for eventsource and poll (see #81)
-rw-r--r-- | src/bullet_handler.erl | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/bullet_handler.erl b/src/bullet_handler.erl index c576bda..ed29188 100644 --- a/src/bullet_handler.erl +++ b/src/bullet_handler.erl @@ -107,6 +107,10 @@ info(Message, Req, case Handler:info(Message, Req, HandlerState) of {ok, Req2, HandlerState2} -> {loop, Req2, State#state{handler_state=HandlerState2}, hibernate}; + {shutdown, Req2, HandlerState2} -> + State2 = State#state{handler_state=HandlerState2}, + {ok, Req3} = shutdown_get_mode(GetMode, Req2), + {ok, Req3, State2}; {reply, Data, Req2, HandlerState2} -> State2 = State#state{handler_state=HandlerState2}, case reply_get_mode(GetMode, Data, Req2) of @@ -192,6 +196,11 @@ start_get_mode(eventsource, Req) -> Headers = [{<<"content-type">>, <<"text/event-stream">>}], {ok, _} = cowboy_req:chunked_reply(200, Headers, Req). +shutdown_get_mode(poll, Req) -> + cowboy_req:reply(204, [], <<"">>, Req); +shutdown_get_mode(eventsource, Req) -> + {ok, Req}. + reply_get_mode(poll, Data, Req) -> {ok, _} = cowboy_req:reply(200, [], Data, Req); reply_get_mode(eventsource, Data, Req) -> |