Skip to content

yongbo000/egg-eventsource

Repository files navigation

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

About

an egg plugin for eventsource

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published