From 5e05fe8e7877ffd6bc473b77b8ca0a12ad26bd67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Thu, 14 Mar 2024 16:23:56 +0100 Subject: Cowboy 2.12, Cowlib 2.13, Gun 2.1 --- .../manual/cowboy_req.stream_events/index.html | 225 +++++++++++++++++++++ 1 file changed, 225 insertions(+) create mode 100644 docs/en/cowboy/2.12/manual/cowboy_req.stream_events/index.html (limited to 'docs/en/cowboy/2.12/manual/cowboy_req.stream_events') diff --git a/docs/en/cowboy/2.12/manual/cowboy_req.stream_events/index.html b/docs/en/cowboy/2.12/manual/cowboy_req.stream_events/index.html new file mode 100644 index 00000000..9aeccddf --- /dev/null +++ b/docs/en/cowboy/2.12/manual/cowboy_req.stream_events/index.html @@ -0,0 +1,225 @@ + + + + + + + + + + Nine Nines: cowboy_req:stream_events(3) + + + + + + + + + + + + + + + +
+
+
+
+ +

cowboy_req:stream_events(3)

+ +

Name

+

cowboy_req:stream_events - Stream events

+

Description

+
+
stream_events(Events, IsFin, Req :: cowboy_req:req()) -> ok
+
+Events :: Event | [Event]
+IsFin  :: fin | nofin
+
+Event  :: #{
+    comment => iodata(),
+    data    => iodata(),
+    event   => iodata() | atom(),
+    id      => iodata(),
+    retry   => non_neg_integer()
+}
+
+

Stream events.

+

This function should only be used for text/event-stream responses when using server-sent events. Cowboy will automatically encode the given events to their text representation.

+

This function may be called as many times as needed after initiating a response using the cowboy_req:stream_reply(3) function.

+

The second argument indicates if this call is the final call. Use the nofin value until you know no more data will be sent. The final call should use fin (possibly with an empty data value) or be a call to the cowboy_req:stream_trailers(3) function.

+

Note that not using fin for the final call is not an error; Cowboy will take care of it when the request handler terminates if needed. Depending on the resource it may however be more efficient to do it as early as possible.

+

You do not need to handle HEAD requests specifically as Cowboy will ensure no data is sent when you call this function.

+

Arguments

+
Events
+

Events to be sent. All fields are optional.

+
+
IsFin
+

A flag indicating whether this is the final piece of data to be sent.

+
+
Req
+

The Req object.

+
+
+

Return value

+

The atom ok is always returned. It can be safely ignored.

+

Changelog

+
  • 2.5: Function introduced. +
  • +
+

Examples

+
Stream events
+
+
Req = cowboy_req:stream_reply(200, #{
+    <<"content-type">> => <<"text/event-stream">>
+}, Req0),
+cowboy_req:stream_events(#{
+    id => <<"comment-123">>,
+    event => <<"add_comment">>,
+    data => <<"Hello,\n\nI noticed something wrong in ...">>
+}, nofin, Req),
+timer:sleep(1000),
+cowboy_req:stream_events(#{
+    event => <<"debug">>,
+    data => io_lib:format("An error occurred: ~p~n", [Error])
+}, fin, Req).
+
+

See also

+

cowboy_req(3), cowboy_req:stream_reply(3), cowboy_req:stream_body(3), cowboy_req:stream_trailers(3)

+ + + + + + +
+ +
+ + +

+ Cowboy + 2.12 + Function Reference + +

+ + + +

Navigation

+ +

Version select

+ + +

Like my work? Donate!

+

Donate to Loïc Hoguin because his work on Cowboy, Ranch, Gun and Erlang.mk is fantastic:

+
+ + + + + + + + + +

Recurring payment options are also available via GitHub Sponsors. These funds are used to cover the recurring expenses like food, dedicated servers or domain names.

+ + + +
+
+
+
+ + + + + + + + + -- cgit v1.2.3