diff options
Diffstat (limited to 'src/bullet_handler.erl')
-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) -> |