diff options
Diffstat (limited to 'test/handlers/sse_clock_close_h.erl')
-rw-r--r-- | test/handlers/sse_clock_close_h.erl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test/handlers/sse_clock_close_h.erl b/test/handlers/sse_clock_close_h.erl new file mode 100644 index 0000000..c5911ff --- /dev/null +++ b/test/handlers/sse_clock_close_h.erl @@ -0,0 +1,23 @@ +%% This module implements a loop handler that sends +%% the current time every second using SSE. In contrast +%% to sse_clock_h, this one sends a "Connection: close" +%% header. + +-module(sse_clock_close_h). + +-export([init/2]). +-export([info/3]). + +init(Req, State) -> + self() ! timeout, + {cowboy_loop, cowboy_req:stream_reply(200, #{ + <<"content-type">> => <<"text/event-stream">>, + <<"connection">> => <<"close">> + }, Req), State}. + +info(timeout, Req, State) -> + erlang:send_after(1000, self(), timeout), + cowboy_req:stream_events(#{ + data => cowboy_clock:rfc1123() + }, nofin, Req), + {ok, Req, State}. |