mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
feat(grafana_live): more work pushing data to websocket, #4355
This commit is contained in:
@@ -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 => {
|
||||
|
||||
Reference in New Issue
Block a user