|
|
|
|
@ -1,13 +1,41 @@ |
|
|
|
|
export class AppWebsocketListener { |
|
|
|
|
constructor(orch, streamer) { |
|
|
|
|
this.orch = orch; |
|
|
|
|
this.streamer = streamer; |
|
|
|
|
|
|
|
|
|
this.streamer.on('app/added', this.onAppAdded.bind(this)); |
|
|
|
|
this.streamer.on('app/statusUpdate', this.onAppStatusUpdated.bind(this)); |
|
|
|
|
this.streamer.on('app/removed', this.onAppRemoved.bind(this)); |
|
|
|
|
console.log('hello from the app websocket listener'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
onAppAdded(appId) { |
|
|
|
|
console.log('On App Added!', appId); |
|
|
|
|
this.orch.getManager().loadOne(appId).then(() => console.log('yay')); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
onAppStatusUpdated({ appId, status }) { |
|
|
|
|
console.log('App Status Update:', appId, status); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
onAppRemoved(appId) { |
|
|
|
|
console.log('On App Removed!', appId); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
export class AppWebsocketNotifier { |
|
|
|
|
constructor() { |
|
|
|
|
this.streamer = new Meteor.Streamer('apps', { retransmit: false }); |
|
|
|
|
constructor(orch) { |
|
|
|
|
this.streamer = new Meteor.Streamer('apps', { retransmit: true, retransmitToSelf: true }); |
|
|
|
|
this.streamer.allowRead('all'); |
|
|
|
|
this.streamer.allowEmit('all'); |
|
|
|
|
this.streamer.allowWrite('none'); |
|
|
|
|
|
|
|
|
|
this.listener = new AppWebsocketListener(orch, this.streamer); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
appAdded(appId) { |
|
|
|
|
this.streamer.emit('app/added', appId); |
|
|
|
|
console.log('emitting: "app/added"', appId); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
appRemoved(appId) { |
|
|
|
|
@ -18,6 +46,10 @@ export class AppWebsocketNotifier { |
|
|
|
|
this.streamer.emit('app/updated', appId); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
appStatusUpdated(appId, status) { |
|
|
|
|
this.streamer.emit('app/statusUpdate', { appId, status }); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
commandAdded(command) { |
|
|
|
|
this.streamer.emit('command/added', command); |
|
|
|
|
} |
|
|
|
|
|