Home

Awesome

choo-sse stability

npm version build status downloads js-standard-style

Small wrapper around server-sent event browser API, for choo apps

Usage

var choo = require('choo')
var html = require('choo/html')

var app = choo()
app.use(require('choo-sse')('/sse'))
app.use(live)
app.route('/', mainView)
app.mount('body')

function mainView (state, emit) {
  return html`
    <body>
      <h2>Counter example</h2>
      <h3>Numbers are sent by the server</h3>
      <span id="counter"></span>
    </body>
  `
}

function live (state, emitter) {
  emitter.on('DOMContentLoaded', function () {
    emitter.on('sse:message', (data, event) => {
      var msgElement = document.getElementById('counter')
      msgElement.textContent = data
    })
    emitter.on('sse:error', err => {
      emitter.emit('log:error', err)
    })
  })
}

Events

sse:error | sse.events.ERROR

Emitted if the Event Source constructor or any of its methods throws an exception.

sse:open | sse.events.OPEN

Emitted when the connection is established with the server.

sse:close | sse.events.CLOSE

Emitted when the connection is closed.

sse:message | sse.events.MESSAGE

Listen to this event to get messages from the server.

API

plugin = sse([route], [opts])

The plugin accepts two parameters. You must pass the route for the Event Source object. Also you can pass some options as a second argument.

If the object is correctly created, then you have an object in the state of your app with the following properties:

See Also

License

MIT