-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
29 lines (28 loc) · 864 Bytes
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
const EventStream = require('./lib/eventstream');
const eventName = 'eventsource#sendToAllWorkers';
module.exports = app => {
app.config.coreMiddleware.push('eventsource');
app.eventsource = new EventStream({
logger: app.logger,
heartbeat: app.config.eventsource.heartbeat,
defaultDataId: app.config.eventsource.defaultDataId,
dataIdSeparator: app.config.eventsource.dataIdSeparator,
});
Object.defineProperty(app.eventsource, 'sendToAllWorkers', {
value: (event, data) => {
app.messenger.broadcast(eventName, {
event,
data,
});
},
});
app.messenger.on(eventName, ({ event, data }) => {
if (app.eventsource.count) {
app.eventsource.broadcast(event, data);
}
});
app.beforeClose(() => {
app.eventsource.destroy();
app.logger.info('[egg-eventsource] is destroied');
});
};