This package has been deprecated

Author message:

Unmaintained

sse-node

1.0.2 • Public • Published

Server-sent events for Node.js

Send data to the clients in real time with SSE technology

Install it with:

npm install sse-node
or
git clone https://github.com/manuel-di-iorio/sse-node.git

Example with HTTP server:

const SSE = require("sse-node"),
      http = require("http");
 
http.createServer((req, res) => {
    if (req.url !== "/sse") return res.end();
    
    // This will open a SSE connection on the request and will send the message to the client.
    // On disconnection, a message is logged.
    const client = SSE(req, res);
    client.send("Hello world!");
    client.onClose(() => console.log("Bye client!"));
})
.listen(80);

Example with Express.js:

const SSE = require("sse-node"),
      app = require("express")();
 
app.get("/sse", (req, res) => {
    const client = SSE(req, res);
    client.send("Hello world!");
    client.onClose(() => console.log("Bye client!"));
});
 
app.listen(80);

On the client side, just connect with javascript to the server with:

var es = new EventSource("/sse");
es.onmessage = function(ev) {
    alert(ev.data); //will output 'Hello world!'
};

API

SSE(request, response, [options])
Wrap a HTTP request/response object with this function to create a SSE connection for the incoming request.

*Options* can have the following properties:

    `ping`: When to send a ping to the client each X seconds (by default is disabled)
    `retry`: After how many millisecons to retry the connection (by default is 3000)
    `padding`: Some older browsers require to write a 2KB padding when the SSE connection starts.
      By default this is disabled.

This function returns a object with the following methods:

.send(data, [event])
*Data* can be anything. Objects will get serialized

*Event*: You can send a message to a specific event and listen to it on the client side
  with ev.addEventListener("eventName", function). By default, all messages are sent to the 'message' event

.onClose([callback])
When the client disconnects, will call the specified callback. The param is optional because this function
  also clears the ping interval when set.

Test with:

node test

Then navigate with your browser to http://localhost:9090 and open the javascript console

Package Sidebar

Install

npm i sse-node

Weekly Downloads

7

Version

1.0.2

License

MIT

Last publish

Collaborators

  • xeryan