Awesome
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 toinclude
credentials. 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
,OPEN
orCLOSED
.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