• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

yklykl530/koa-sse: koa sse(server side event) middleware

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

yklykl530/koa-sse

开源软件地址:

https://github.com/yklykl530/koa-sse

开源编程语言:

JavaScript 92.5%

开源软件介绍:

koa-sse-stream

koa sse(server side event) middleware , use stream programming model

KoaJs Slack

Install

npm install --save koa-sse-stream

Usage

const Koa = require('koa');
const compress = require('koa-compress');
const sse = require('koa-sse-stream');


const app = new Koa();
// !!attention : if you use compress, sse must use after compress 
app.use(compress())

/**
 * koa sse middleware
 * @param {Object} opts
 * @param {Number} opts.maxClients max client number, default is 10000
 * @param {Number} opts.pingInterval heartbeat sending interval time(ms), default 60s
 * @param {String} opts.closeEvent if not provide end([data]), send default close event to client, default event name is "close"
 * @param {String} opts.matchQuery when set matchQuery, only has query (whatever the value) , sse will create
 */
app.use(sse({
    maxClients: 5000,
    pingInterval: 30000
}));

app.use(async (ctx) => {
    // ctx.sse is a writable stream and has extra method 'send'
    ctx.sse.send('a notice');
    ctx.sse.sendEnd();
});

ctx.sse

a writable stream

ctx.sse.send(data)

/**
 * Event `close`  Triggered when an SSE connection is closed, whether the server is actively closed or the client is closed
 */
/**
 * 
 * @param {String} data sse data to �send, if it's a string, an anonymous event will be sent.
 * @param {Object} data sse send object mode
 * @param {Object|String} data.data data to send, if it's object, it will be converted to json
 * @param {String} data.event sse event name
 * @param {Number} data.id sse event id
 * @param {Number} data.retry sse retry times
 * @param {*} encoding not use
 * @param {function} callback same as the write method callback
 */
send(data, encoding, callback)

ctx.sse.sendEnd(data)

/**
 * 
 * @param {String} data sse data to �send, if it's a string, an anonymous event will be sent.
 * @param {Object} data sse send object mode
 * @param {Object|String} data.data data to send, if it's object, it will be converted to json
 * @param {String} data.event sse event name
 * @param {Number} data.id sse event id
 * @param {Number} data.retry sse retry times
 * @param {*} encoding not use
 * @param {function} callback same as the write method callback
 */
sendEnd(data, encoding, callback)

Attention !!!

if you use compress, sse must use after compress




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
fymore/koadic发布时间:2022-07-09
下一篇:
donniewang/koa-vue-example: An example of using koa, vue, vue router. 一个使用ko ...发布时间:2022-07-09
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap