Skip to content

Latest commit

 

History

History
81 lines (61 loc) · 2.63 KB

README.md

File metadata and controls

81 lines (61 loc) · 2.63 KB

egg-eventsource

NPM version build status Test coverage David deps Known Vulnerabilities npm download

基于eventsource的server到client的单向推送插件,支持client分组订阅

开启插件

// config/plugin.js
exports.eventsource = {
  enable: true,
  package: 'egg-eventsource',
};

使用场景

client

// 接收服务器推送数据
const es = new EventSource('{base}/__eventsource');
es.on('message', (msgEvent) => {
  console.log(msgEvent.data);
});

es.on('customevent', (msgEvent) => {
  console.log(msgEvent.data);
});

// 只监听某个namespace下的topic
const es2 = new EventSource('{base}/__eventsource?dataId={namespace}.{topic}');
es.on('{eventName}', (msg) => console.log(msg));

server

// broadcast向所有client推送数据,多线程模型下broadcast只会向当前worker线程推送
app.eventsource.broadcast('this is an test message'); // 默认message类型
app.eventsource.broadcast('customevent', 'this is an customevent message'); // 自定义接收类型

// 向全部worker线程推送
app.eventsource.sendToAllWorkers('this is an test message');

// 向某个分组的client发送消息
app.eventsource.broadcast('{eventName}#{namespace}.{topic}', 'this is an test message');
// or
app.eventsource.sendToAllWorkers('{eventName}#{namespace}.{topic}', 'this is an test message');

详细配置

请到 config/config.default.js 查看详细配置项说明。

提问交流

请到 egg issues 异步交流。

License

MIT