fastify-se
Fastify plugin for handle Server-sent Events. https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events
INSTALATION
npm i fastify-se
USAGE
const fastify_se = ; const SE = opts; fastify;
OPTIONS
this"seidGenerator" = optsseidGenerator || defaultSeidGenerator;this"stream" = optsstream || streamPassThrough;this"streamOptions" = optsstreamOptions || allowHalfOpen: false ;this"autoGenerateId" = optsautoGenerateId || true;this"serverTimeout" = optsserverTimeout || 120000;this"clients" = {};
seidGenerator
: Return aseid
(Server event ID) for object key to storereply
inclients
object,clients[seid]= reply;
.stream
: Stream class will be passing toreply.send(stream)
.streamOptions
: Options for create new stream,new stream(streamOptions)
.autoGenerateId
: Iftrue
. The library will automatically createid
in everysendEvent
.serverTimeout
: Set timeout for incoming messages, default120000ms
or equal to2s
, inms
.clients
: All activereply
will be store in this object withseid
as a key. Thereply
will deleted after connection closed.
METHODS
-
reply.sendEvent(data, ?event, ?id, ?retry)
:data
: Data will send to client,string
orobject
.event
(Optional) : Event name will emit in client.id
(Optional) : ID for every event action.retry
(Optional) : Interval time to reconnecting to server if connection lost (In ms).
-
reply.sendEventBySeid(seid, data, ?event, ?id, ?retry)
:seid
: Server event ID, you can get it onreq.seid
in everyhttp.get
request.
-
reply.endEvent()
: To close the connection and deletereply
value inclients
object with key same asreq.seid
value.
You can see more information about data
, event
, id
andretry
in : Server-sent Events - Fields.
EXAMPLE
fastify;