1.0.1 • Published 8 years ago
choo-sse v1.0.1
choo-sse 
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.
withCredentials: Boolean. Indicate if CORS should be set toincludecredentials. Defaults tofalse.
If the object is correctly created, then you have an object in the state of your app with the following properties:
state: A string describing the state of the connection, can beCONNECTING,OPENorCLOSED.url: A string with the url of the source.withCredentials: A boolean indicating if the Event Source object was instantiated with CORS credentials.
See Also
- choo-websockets - Small wrapper around WebSocket browser API, for choo apps