An open API service indexing awesome lists of open source software.

https://github.com/dpskvn/express-sse

An Express middleware for quick'n'easy server-sent events.
https://github.com/dpskvn/express-sse

express-middleware express-sse javascript nodejs sse

Last synced: 2 months ago
JSON representation

An Express middleware for quick'n'easy server-sent events.

Awesome Lists containing this project

README

        

express-sse
============

[![npm version](https://badge.fury.io/js/express-sse.svg)](https://badge.fury.io/js/express-sse) [![Build Status](https://travis-ci.org/dpskvn/express-sse.svg?branch=master)](https://travis-ci.org/dpskvn/express-sse) [![Code Climate](https://codeclimate.com/github/dpskvn/express-sse/badges/gpa.svg)](https://codeclimate.com/github/dpskvn/express-sse) [![codecov](https://codecov.io/gh/dpskvn/express-sse/branch/master/graph/badge.svg)](https://codecov.io/gh/dpskvn/express-sse)

[![NPM](https://nodei.co/npm/express-sse.png?downloads=true)](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) {
...
});
```