[Fix] Fixed re-registering for updates on new WS connection

This commit is contained in:
Robert von Burg 2020-02-26 21:17:51 +01:00
parent ee290b468b
commit 6decabfdb4
2 changed files with 22 additions and 2 deletions

View File

@ -1,7 +1,7 @@
{
"name": "strolch-wc-ws-observer",
"description": "Strolch Polymer WebSocket observer update handler extension",
"version": "0.2.1",
"version": "0.2.2",
"authors": [
"Robert von Burg"
],

View File

@ -13,6 +13,7 @@
var webSocket = null;
var observers = {};
var registrations = {};
Polymer({
is: 'strolch-wc-ws-observer',
@ -71,8 +72,26 @@
console.log("Unregistered callback for " + objectType + " " + type + " " + source);
},
_reRegister: function () {
var objectTypes = Object.keys(observers);
console.log("Reregistering " + objectTypes.length + " object types...");
for (var i = 0; i < objectTypes.length; i++) {
var objectType = objectTypes[i];
var byType = observers[objectTypes[i]];
var types = Object.keys(byType);
console.log("Reregistering " + types.length + " types...");
for (var j = 0; j < types.length; j++) {
var type = types[i];
var params = registrations[objectType + "_" + type];
this._register(objectType, type, params);
}
}
},
_register: function (objectType, type, params) {
console.log("Registering for updates for " + objectType + " " + type);
registrations[objectType + "_" + type] = params;
this._sendWsMessage({
msgType: "ObserverRegister",
objectType: objectType,
@ -158,7 +177,8 @@
if (msg.msgType == "ObserverAdd" || msg.msgType == "ObserverUpdate" || msg.msgType == "ObserverRemove") {
this.notifyObservers(msg);
} else if (msg.msgType == "Authenticate") {
console.log("Successfully authenticated!");
console.log("Successfully authenticated, re-registering...");
this._reRegister();
} else {
console.error("Unhandled event " + msg.msgType);
}