egg-eventsource
v2.0.4
Published
an egg plugin for eventsource
Downloads
24
Readme
egg-eventsource
基于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 异步交流。