feat(grafana_live): more work pushing data to websocket, #4355

This commit is contained in:
Torkel Ödegaard
2016-03-14 22:26:43 +01:00
parent 92f20b9b7d
commit 2e1f26096f
5 changed files with 64 additions and 9 deletions

View File

@@ -42,7 +42,7 @@ export class LiveSrv {
};
this.conn.onmessage = (evt) => {
console.log("Live: message received:", evt.data);
this.handleMessage(evt.data);
};
this.conn.onerror = (evt) => {
@@ -61,6 +61,23 @@ export class LiveSrv {
return this.initPromise;
}
handleMessage(message) {
message = JSON.parse(message);
if (!message.stream) {
console.log("Error: stream message without stream!", message);
return;
}
var observer = this.observers[message.stream];
if (!observer) {
this.removeObserver(message.stream, null);
return;
}
observer.next(message);
}
reconnect() {
// no need to reconnect if no one cares
if (_.keys(this.observers).length === 0) {
@@ -89,6 +106,7 @@ export class LiveSrv {
}
removeObserver(stream, observer) {
console.log('unsubscribe', stream);
delete this.observers[stream];
this.getConnection().then(conn => {