[Fix] Fixed re-registering for updates on new WS connection
This commit is contained in:
parent
ee290b468b
commit
6decabfdb4
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "strolch-wc-ws-observer",
|
"name": "strolch-wc-ws-observer",
|
||||||
"description": "Strolch Polymer WebSocket observer update handler extension",
|
"description": "Strolch Polymer WebSocket observer update handler extension",
|
||||||
"version": "0.2.1",
|
"version": "0.2.2",
|
||||||
"authors": [
|
"authors": [
|
||||||
"Robert von Burg"
|
"Robert von Burg"
|
||||||
],
|
],
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
var webSocket = null;
|
var webSocket = null;
|
||||||
|
|
||||||
var observers = {};
|
var observers = {};
|
||||||
|
var registrations = {};
|
||||||
|
|
||||||
Polymer({
|
Polymer({
|
||||||
is: 'strolch-wc-ws-observer',
|
is: 'strolch-wc-ws-observer',
|
||||||
|
@ -71,8 +72,26 @@
|
||||||
console.log("Unregistered callback for " + objectType + " " + type + " " + source);
|
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) {
|
_register: function (objectType, type, params) {
|
||||||
console.log("Registering for updates for " + objectType + " " + type);
|
console.log("Registering for updates for " + objectType + " " + type);
|
||||||
|
registrations[objectType + "_" + type] = params;
|
||||||
this._sendWsMessage({
|
this._sendWsMessage({
|
||||||
msgType: "ObserverRegister",
|
msgType: "ObserverRegister",
|
||||||
objectType: objectType,
|
objectType: objectType,
|
||||||
|
@ -158,7 +177,8 @@
|
||||||
if (msg.msgType == "ObserverAdd" || msg.msgType == "ObserverUpdate" || msg.msgType == "ObserverRemove") {
|
if (msg.msgType == "ObserverAdd" || msg.msgType == "ObserverUpdate" || msg.msgType == "ObserverRemove") {
|
||||||
this.notifyObservers(msg);
|
this.notifyObservers(msg);
|
||||||
} else if (msg.msgType == "Authenticate") {
|
} else if (msg.msgType == "Authenticate") {
|
||||||
console.log("Successfully authenticated!");
|
console.log("Successfully authenticated, re-registering...");
|
||||||
|
this._reRegister();
|
||||||
} else {
|
} else {
|
||||||
console.error("Unhandled event " + msg.msgType);
|
console.error("Unhandled event " + msg.msgType);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue