58 lines
1.8 KiB
Markdown
58 lines
1.8 KiB
Markdown
|
express-sse
|
||
|
============
|
||
|
|
||
|
[](https://travis-ci.org/dpskvn/express-sse) [](https://codeclimate.com/github/dpskvn/express-sse) [](https://codeclimate.com/github/dpskvn/express-sse/coverage)
|
||
|
|
||
|
[](https://nodei.co/npm/express-sse/)
|
||
|
|
||
|
An Express middleware for quick'n'easy server-sent events.
|
||
|
|
||
|
## About
|
||
|
`express-sse` is meant to keep things simple. You need to send server-sent events without too many complications and fallbacks? This is the library to do so.
|
||
|
|
||
|
## Installation:
|
||
|
`npm install --save express-sse`
|
||
|
|
||
|
or
|
||
|
|
||
|
`yarn add express-sse`
|
||
|
|
||
|
## Usage example:
|
||
|
### Options:
|
||
|
You can pass an optional options object to the constructor. Currently it only supports changing the way initial data is treated. If you set `isSerialized` to `false`, the initial data is sent as a single event. The default value is `true`.
|
||
|
|
||
|
```js
|
||
|
var sse = new SSE(["array", "containing", "initial", "content", "(optional)"], { isSerialized: false, initialEvent: 'optional initial event name' });
|
||
|
```
|
||
|
|
||
|
### Server:
|
||
|
```js
|
||
|
var SSE = require('express-sse');
|
||
|
var sse = new SSE(["array", "containing", "initial", "content", "(optional)"]);
|
||
|
|
||
|
...
|
||
|
|
||
|
app.get('/stream', sse.init);
|
||
|
|
||
|
...
|
||
|
|
||
|
sse.send(content);
|
||
|
sse.send(content, eventName);
|
||
|
sse.send(content, eventName, customID);
|
||
|
sse.updateInit(["array", "containing", "new", "content"]);
|
||
|
sse.serialize(["array", "to", "be", "sent", "as", "serialized", "events"]);
|
||
|
```
|
||
|
|
||
|
### Client:
|
||
|
```js
|
||
|
var es = new EventSource('/stream');
|
||
|
|
||
|
es.onmessage = function (event) {
|
||
|
...
|
||
|
};
|
||
|
|
||
|
es.addEventListener(eventName, function (event) {
|
||
|
...
|
||
|
});
|
||
|
```
|