SseParser
Module to parse server sent event as spicified in SSE standard
Full documentation can be found at https://hexdocs.pm/sse_parser.
Installation
The package can be installed
by adding sse_parser
to your list of dependencies in mix.exs
:
def deps do
[
{:sse_parser, "~> 2.0.1"}
]
end
Usage
Simplest way to use this librari is using SseParser.feed_and_interpret/1
interface. You pass
chunk from SSE
source and it will return parsed and reduced events
iex> SseParser.feed_and_interpret("event: put\ndata: {\"name\": \"Testovic\"}\n\n")
{:ok, [
%SseParser.Event{
event: "put",
data: "{\"name\": \"Testovic\"}"
}
], ""}
It is also posible to use this interface partiali, because interpret step could remove a lot of information
iex> SseParser.feed(":Put event\nevent: put\ndata: {\"name\": \"Testovic\"}\n\n")
{:ok, [
"Put event",
{"event", "put"},
{"data", "{\"name\": \"Testovic\"}"}
], ""}
iex> SseParser.interpret([["Put event", {"event", "put"}, {"data", "{\"name\": \"Testovic\"}"}]])
[
%SseParser.Event{
event: "put",
data: "{\"name\": \"Testovic\"}"
}
]