Socket
Book a DemoInstallSign in
Socket

sse-stream

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sse-stream

expose html5 server sent events (sse) as a writable stream

latest
Source
npmnpm
Version
0.0.5
Version published
Maintainers
1
Created
Source

sse-stream

Expose HTML5 Server Sent Events as an installable appliance on Node.JS http servers; connections are emitted as Writable streams.


var http = require('http')
  , fs = require('fs')
  , through = require('through')
  , sse = require('sse-stream')('/sse')
  , serv

module.exports = serv = http.createServer(function(req, resp) {
  resp.setHeader('content-type', 'text/html')
  resp.end('<html><body><script type="text/javascript">('+js+')()</script></body></html>')
})

sse.install(serv)

sse.on('connection', function(client) {
  fs.createReadStream('/usr/share/dict/words')
    .pipe(through(function(buf) { this.emit('data', buf.toString()) }))
    .pipe(client)
})

// client-side code:
function js() {
  var es = new EventSource('/sse')
    , pre = document.createElement('pre')
    , closed = false

  document.body.appendChild(pre)

  es.onmessage = function(ev) {
    if(closed) return

    pre.appendChild(document.createTextNode(ev.data))

    window.scrollTo(0, pre.clientHeight)
  }

  es.addEventListener('end', function() {
    es.close()
    closed = true
  }, true)

  es.onerror = function(e) {
    closed = true
  }
}

API

sse = require('sse-stream')(path | options)

Create a SSE server that emits connection events on new, successful eventstream connections.

The argument may either be a string path to listen on (defaults to /sse/) or an object:

{ path: '/listen/on/this/path'
, keepalive: 1000 }

keepalive determines the interval time in ms that keepalives will be sent to all connected clients.

sse.on('connection', function(client))

client is a writable stream representing a client connection (request response pair).

Of note, all data sent through this connection will be stringified before sending due to the event stream spec.

client.retry(integer ms)

Send a "retry" message that lets the client know how many MS to wait until retrying a connection that ended.

license

MIT

Keywords

sse

FAQs

Package last updated on 28 Oct 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts