Routable Websocket Wrapper for KOA (ES6+)
const Koa = require('koa'),
Router = require('koa-router'),
KoaWs = require('reed-koa-websocket')
const app = new Koa()
app.ws = new KoaWs(app)
const router = new Router()
router.all('/channel/:name', ctx => {
let client = ctx.websocket
client.send(`Hello ${ctx.params.name}`)
client.on('message', msg => {
// echo back
client.send(JSON.stringify({
params: { ...ctx.params },
query: { ...ctx.query },
msg
}))
})
})
app.ws.use(router.routes())
app.listen(8080)
//
// let client = new WebSocket('ws://localhost:8080/channel/hans?foo=bar')
// ...
-
constructor(app[, wsOptions])
app
: KOA ApplicationwsOptions
: [optional] construction options for ws -
use(middleware)
middleware
: koa middleware