@aws-amplify/pubsub 4.4.9 → 4.4.10-next.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +73 -0
- package/dist/aws-amplify-pubsub.js +713 -378
- package/dist/aws-amplify-pubsub.js.map +1 -1
- package/dist/aws-amplify-pubsub.min.js +3 -3
- package/dist/aws-amplify-pubsub.min.js.map +1 -1
- package/lib/Providers/AWSAppSyncRealTimeProvider/index.d.ts +10 -2
- package/lib/Providers/AWSAppSyncRealTimeProvider/index.js +133 -90
- package/lib/Providers/AWSAppSyncRealTimeProvider/index.js.map +1 -1
- package/lib/Providers/MqttOverWSProvider.d.ts +5 -1
- package/lib/Providers/MqttOverWSProvider.js +152 -87
- package/lib/Providers/MqttOverWSProvider.js.map +1 -1
- package/lib/Providers/PubSubProvider.d.ts +1 -1
- package/lib/Providers/{AWSAppSyncRealTimeProvider/constants.d.ts → constants.d.ts} +9 -0
- package/lib/Providers/{AWSAppSyncRealTimeProvider/constants.js → constants.js} +9 -0
- package/lib/Providers/constants.js.map +1 -0
- package/lib/index.d.ts +3 -10
- package/lib/index.js +3 -10
- package/lib/index.js.map +1 -1
- package/lib/types/Provider.d.ts +10 -1
- package/lib/types/PubSub.d.ts +22 -8
- package/lib/types/PubSub.js +56 -0
- package/lib/types/PubSub.js.map +1 -1
- package/lib/types/index.d.ts +0 -17
- package/lib/types/index.js +4 -36
- package/lib/types/index.js.map +1 -1
- package/lib/utils/ConnectionStateMonitor.d.ts +2 -1
- package/lib/utils/ConnectionStateMonitor.js +21 -13
- package/lib/utils/ConnectionStateMonitor.js.map +1 -1
- package/lib/utils/ReachabilityMonitor/index.d.ts +3 -0
- package/lib/utils/ReachabilityMonitor/index.js +5 -0
- package/lib/utils/ReachabilityMonitor/index.js.map +1 -0
- package/lib/utils/ReachabilityMonitor/index.native.d.ts +3 -0
- package/lib/utils/ReachabilityMonitor/index.native.js +11 -0
- package/lib/utils/ReachabilityMonitor/index.native.js.map +1 -0
- package/lib/utils/ReconnectionMonitor.d.ts +29 -0
- package/lib/utils/ReconnectionMonitor.js +73 -0
- package/lib/utils/ReconnectionMonitor.js.map +1 -0
- package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.d.ts +10 -2
- package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js +129 -86
- package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js.map +1 -1
- package/lib-esm/Providers/MqttOverWSProvider.d.ts +5 -1
- package/lib-esm/Providers/MqttOverWSProvider.js +153 -88
- package/lib-esm/Providers/MqttOverWSProvider.js.map +1 -1
- package/lib-esm/Providers/PubSubProvider.d.ts +1 -1
- package/lib-esm/Providers/{AWSAppSyncRealTimeProvider/constants.d.ts → constants.d.ts} +9 -0
- package/lib-esm/Providers/{AWSAppSyncRealTimeProvider/constants.js → constants.js} +9 -0
- package/lib-esm/Providers/constants.js.map +1 -0
- package/lib-esm/index.d.ts +3 -10
- package/lib-esm/index.js +3 -11
- package/lib-esm/index.js.map +1 -1
- package/lib-esm/types/Provider.d.ts +10 -1
- package/lib-esm/types/PubSub.d.ts +22 -8
- package/lib-esm/types/PubSub.js +56 -0
- package/lib-esm/types/PubSub.js.map +1 -1
- package/lib-esm/types/index.d.ts +0 -17
- package/lib-esm/types/index.js +1 -36
- package/lib-esm/types/index.js.map +1 -1
- package/lib-esm/utils/ConnectionStateMonitor.d.ts +2 -1
- package/lib-esm/utils/ConnectionStateMonitor.js +13 -5
- package/lib-esm/utils/ConnectionStateMonitor.js.map +1 -1
- package/lib-esm/utils/ReachabilityMonitor/index.d.ts +3 -0
- package/lib-esm/utils/ReachabilityMonitor/index.js +3 -0
- package/lib-esm/utils/ReachabilityMonitor/index.js.map +1 -0
- package/lib-esm/utils/ReachabilityMonitor/index.native.d.ts +3 -0
- package/lib-esm/utils/ReachabilityMonitor/index.native.js +6 -0
- package/lib-esm/utils/ReachabilityMonitor/index.native.js.map +1 -0
- package/lib-esm/utils/ReconnectionMonitor.d.ts +29 -0
- package/lib-esm/utils/ReconnectionMonitor.js +71 -0
- package/lib-esm/utils/ReconnectionMonitor.js.map +1 -0
- package/package.json +5 -5
- package/src/Providers/AWSAppSyncRealTimeProvider/index.ts +154 -90
- package/src/Providers/MqttOverWSProvider.ts +120 -53
- package/src/Providers/PubSubProvider.ts +1 -1
- package/src/Providers/{AWSAppSyncRealTimeProvider/constants.ts → constants.ts} +12 -0
- package/src/index.ts +3 -10
- package/src/types/Provider.ts +13 -1
- package/src/types/PubSub.ts +47 -8
- package/src/types/index.ts +0 -43
- package/src/utils/ConnectionStateMonitor.ts +20 -5
- package/src/utils/ReachabilityMonitor/index.native.ts +5 -0
- package/src/utils/ReachabilityMonitor/index.ts +3 -0
- package/src/utils/ReconnectionMonitor.ts +74 -0
- package/lib/Providers/AWSAppSyncRealTimeProvider/constants.js.map +0 -1
- package/lib-esm/Providers/AWSAppSyncRealTimeProvider/constants.js.map +0 -1
|
@@ -97,7 +97,11 @@ var Paho = __importStar(require("paho-mqtt"));
|
|
|
97
97
|
var uuid_1 = require("uuid");
|
|
98
98
|
var zen_observable_ts_1 = __importDefault(require("zen-observable-ts"));
|
|
99
99
|
var PubSubProvider_1 = require("./PubSubProvider");
|
|
100
|
+
var PubSub_1 = require("../types/PubSub");
|
|
100
101
|
var core_1 = require("@aws-amplify/core");
|
|
102
|
+
var ConnectionStateMonitor_1 = require("../utils/ConnectionStateMonitor");
|
|
103
|
+
var ReconnectionMonitor_1 = require("../utils/ReconnectionMonitor");
|
|
104
|
+
var constants_1 = require("./constants");
|
|
101
105
|
var logger = new core_1.ConsoleLogger('MqttOverWSProvider');
|
|
102
106
|
function mqttTopicMatch(filter, topic) {
|
|
103
107
|
var filterArray = filter.split('/');
|
|
@@ -121,14 +125,15 @@ var ClientsQueue = /** @class */ (function () {
|
|
|
121
125
|
ClientsQueue.prototype.get = function (clientId, clientFactory) {
|
|
122
126
|
return __awaiter(this, void 0, void 0, function () {
|
|
123
127
|
var cachedPromise, newPromise;
|
|
128
|
+
var _this = this;
|
|
124
129
|
return __generator(this, function (_a) {
|
|
125
130
|
cachedPromise = this.promises.get(clientId);
|
|
126
|
-
if (cachedPromise)
|
|
131
|
+
if (cachedPromise)
|
|
127
132
|
return [2 /*return*/, cachedPromise];
|
|
128
|
-
}
|
|
129
133
|
if (clientFactory) {
|
|
130
134
|
newPromise = clientFactory(clientId);
|
|
131
135
|
this.promises.set(clientId, newPromise);
|
|
136
|
+
newPromise.catch(function (v) { return _this.promises.delete(clientId); });
|
|
132
137
|
return [2 /*return*/, newPromise];
|
|
133
138
|
}
|
|
134
139
|
return [2 /*return*/, undefined];
|
|
@@ -147,6 +152,9 @@ var ClientsQueue = /** @class */ (function () {
|
|
|
147
152
|
};
|
|
148
153
|
return ClientsQueue;
|
|
149
154
|
}());
|
|
155
|
+
var dispatchPubSubEvent = function (event, data, message) {
|
|
156
|
+
core_1.Hub.dispatch('pubsub', { event: event, data: data, message: message }, 'PubSub', constants_1.AMPLIFY_SYMBOL);
|
|
157
|
+
};
|
|
150
158
|
var topicSymbol = typeof Symbol !== 'undefined' ? Symbol('topic') : '@@topic';
|
|
151
159
|
var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
152
160
|
__extends(MqttOverWSProvider, _super);
|
|
@@ -154,8 +162,26 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
154
162
|
if (options === void 0) { options = {}; }
|
|
155
163
|
var _this = _super.call(this, __assign(__assign({}, options), { clientId: options.clientId || uuid_1.v4() })) || this;
|
|
156
164
|
_this._clientsQueue = new ClientsQueue();
|
|
165
|
+
_this.connectionStateMonitor = new ConnectionStateMonitor_1.ConnectionStateMonitor();
|
|
166
|
+
_this.reconnectionMonitor = new ReconnectionMonitor_1.ReconnectionMonitor();
|
|
157
167
|
_this._topicObservers = new Map();
|
|
158
168
|
_this._clientIdObservers = new Map();
|
|
169
|
+
// Monitor the connection health state and pass changes along to Hub
|
|
170
|
+
_this.connectionStateMonitor.connectionStateObservable.subscribe(function (connectionStateChange) {
|
|
171
|
+
dispatchPubSubEvent(constants_1.CONNECTION_STATE_CHANGE, {
|
|
172
|
+
provider: _this,
|
|
173
|
+
connectionState: connectionStateChange,
|
|
174
|
+
}, "Connection state is " + connectionStateChange);
|
|
175
|
+
_this.connectionState = connectionStateChange;
|
|
176
|
+
// Trigger reconnection when the connection is disrupted
|
|
177
|
+
if (connectionStateChange === PubSub_1.ConnectionState.ConnectionDisrupted) {
|
|
178
|
+
_this.reconnectionMonitor.record(ReconnectionMonitor_1.ReconnectEvent.START_RECONNECT);
|
|
179
|
+
}
|
|
180
|
+
else if (connectionStateChange !== PubSub_1.ConnectionState.Connecting) {
|
|
181
|
+
// Trigger connected to halt reconnection attempts
|
|
182
|
+
_this.reconnectionMonitor.record(ReconnectionMonitor_1.ReconnectEvent.HALT_RECONNECT);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
159
185
|
return _this;
|
|
160
186
|
}
|
|
161
187
|
Object.defineProperty(MqttOverWSProvider.prototype, "clientId", {
|
|
@@ -194,11 +220,9 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
194
220
|
return 'MqttOverWSProvider';
|
|
195
221
|
};
|
|
196
222
|
MqttOverWSProvider.prototype.onDisconnect = function (_a) {
|
|
197
|
-
var _this = this;
|
|
198
223
|
var clientId = _a.clientId, errorCode = _a.errorCode, args = __rest(_a, ["clientId", "errorCode"]);
|
|
199
224
|
if (errorCode !== 0) {
|
|
200
225
|
logger.warn(clientId, JSON.stringify(__assign({ errorCode: errorCode }, args), null, 2));
|
|
201
|
-
var topicsToDelete_1 = [];
|
|
202
226
|
if (!clientId) {
|
|
203
227
|
return;
|
|
204
228
|
}
|
|
@@ -206,35 +230,20 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
206
230
|
if (!clientIdObservers) {
|
|
207
231
|
return;
|
|
208
232
|
}
|
|
209
|
-
|
|
210
|
-
observer.error('Disconnected, error code: ' + errorCode);
|
|
211
|
-
// removing observers for disconnected clientId
|
|
212
|
-
_this._topicObservers.forEach(function (observerForTopic, observerTopic) {
|
|
213
|
-
observerForTopic.delete(observer);
|
|
214
|
-
if (observerForTopic.size === 0) {
|
|
215
|
-
topicsToDelete_1.push(observerTopic);
|
|
216
|
-
}
|
|
217
|
-
});
|
|
218
|
-
});
|
|
219
|
-
// forgiving any trace of clientId
|
|
220
|
-
this._clientIdObservers.delete(clientId);
|
|
221
|
-
// Removing topics that are not listen by an observer
|
|
222
|
-
topicsToDelete_1.forEach(function (topic) {
|
|
223
|
-
_this._topicObservers.delete(topic);
|
|
224
|
-
});
|
|
233
|
+
this.disconnect(clientId);
|
|
225
234
|
}
|
|
226
235
|
};
|
|
227
236
|
MqttOverWSProvider.prototype.newClient = function (_a) {
|
|
228
237
|
var url = _a.url, clientId = _a.clientId;
|
|
229
238
|
return __awaiter(this, void 0, void 0, function () {
|
|
230
|
-
var client;
|
|
239
|
+
var client, connected;
|
|
231
240
|
var _this = this;
|
|
232
241
|
return __generator(this, function (_b) {
|
|
233
242
|
switch (_b.label) {
|
|
234
243
|
case 0:
|
|
235
244
|
logger.debug('Creating new MQTT client', clientId);
|
|
245
|
+
this.connectionStateMonitor.record(ConnectionStateMonitor_1.CONNECTION_CHANGE.OPENING_CONNECTION);
|
|
236
246
|
client = new Paho.Client(url, clientId);
|
|
237
|
-
// client.trace = (args) => logger.debug(clientId, JSON.stringify(args, null, 2));
|
|
238
247
|
client.onMessageArrived = function (_a) {
|
|
239
248
|
var topic = _a.destinationName, msg = _a.payloadString;
|
|
240
249
|
_this._onMessage(topic, msg);
|
|
@@ -242,17 +251,26 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
242
251
|
client.onConnectionLost = function (_a) {
|
|
243
252
|
var errorCode = _a.errorCode, args = __rest(_a, ["errorCode"]);
|
|
244
253
|
_this.onDisconnect(__assign({ clientId: clientId, errorCode: errorCode }, args));
|
|
254
|
+
_this.connectionStateMonitor.record(ConnectionStateMonitor_1.CONNECTION_CHANGE.CLOSED);
|
|
245
255
|
};
|
|
246
256
|
return [4 /*yield*/, new Promise(function (resolve, reject) {
|
|
247
257
|
client.connect({
|
|
248
258
|
useSSL: _this.isSSLEnabled,
|
|
249
259
|
mqttVersion: 3,
|
|
250
|
-
onSuccess: function () { return resolve(
|
|
251
|
-
onFailure:
|
|
260
|
+
onSuccess: function () { return resolve(true); },
|
|
261
|
+
onFailure: function (x) {
|
|
262
|
+
if (clientId)
|
|
263
|
+
_this._clientsQueue.remove(clientId);
|
|
264
|
+
_this.connectionStateMonitor.record(ConnectionStateMonitor_1.CONNECTION_CHANGE.CLOSED);
|
|
265
|
+
resolve(false);
|
|
266
|
+
},
|
|
252
267
|
});
|
|
253
268
|
})];
|
|
254
269
|
case 1:
|
|
255
|
-
_b.sent();
|
|
270
|
+
connected = _b.sent();
|
|
271
|
+
if (connected) {
|
|
272
|
+
this.connectionStateMonitor.record(ConnectionStateMonitor_1.CONNECTION_CHANGE.CONNECTION_ESTABLISHED);
|
|
273
|
+
}
|
|
256
274
|
return [2 /*return*/, client];
|
|
257
275
|
}
|
|
258
276
|
});
|
|
@@ -264,9 +282,23 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
264
282
|
var _this = this;
|
|
265
283
|
return __generator(this, function (_a) {
|
|
266
284
|
switch (_a.label) {
|
|
267
|
-
case 0: return [4 /*yield*/, this.clientsQueue.get(clientId, function (clientId) {
|
|
268
|
-
|
|
269
|
-
|
|
285
|
+
case 0: return [4 /*yield*/, this.clientsQueue.get(clientId, function (clientId) { return __awaiter(_this, void 0, void 0, function () {
|
|
286
|
+
var client;
|
|
287
|
+
return __generator(this, function (_a) {
|
|
288
|
+
switch (_a.label) {
|
|
289
|
+
case 0: return [4 /*yield*/, this.newClient(__assign(__assign({}, options), { clientId: clientId }))];
|
|
290
|
+
case 1:
|
|
291
|
+
client = _a.sent();
|
|
292
|
+
if (client) {
|
|
293
|
+
// Once connected, subscribe to all topics registered observers
|
|
294
|
+
this._topicObservers.forEach(function (_value, key) {
|
|
295
|
+
client.subscribe(key);
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
return [2 /*return*/, client];
|
|
299
|
+
}
|
|
300
|
+
});
|
|
301
|
+
}); })];
|
|
270
302
|
case 1: return [2 /*return*/, _a.sent()];
|
|
271
303
|
}
|
|
272
304
|
});
|
|
@@ -284,6 +316,7 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
284
316
|
client.disconnect();
|
|
285
317
|
}
|
|
286
318
|
this.clientsQueue.remove(clientId);
|
|
319
|
+
this.connectionStateMonitor.record(ConnectionStateMonitor_1.CONNECTION_CHANGE.CLOSED);
|
|
287
320
|
return [2 /*return*/];
|
|
288
321
|
}
|
|
289
322
|
});
|
|
@@ -291,20 +324,22 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
291
324
|
};
|
|
292
325
|
MqttOverWSProvider.prototype.publish = function (topics, msg) {
|
|
293
326
|
return __awaiter(this, void 0, void 0, function () {
|
|
294
|
-
var targetTopics, message,
|
|
327
|
+
var targetTopics, message, client;
|
|
295
328
|
return __generator(this, function (_a) {
|
|
296
329
|
switch (_a.label) {
|
|
297
330
|
case 0:
|
|
298
331
|
targetTopics = [].concat(topics);
|
|
299
332
|
message = JSON.stringify(msg);
|
|
300
|
-
return [4 /*yield*/, this.
|
|
333
|
+
return [4 /*yield*/, this.clientsQueue.get(this.clientId)];
|
|
301
334
|
case 1:
|
|
302
|
-
url = _a.sent();
|
|
303
|
-
return [4 /*yield*/, this.connect(this.clientId, { url: url })];
|
|
304
|
-
case 2:
|
|
305
335
|
client = _a.sent();
|
|
306
|
-
|
|
307
|
-
|
|
336
|
+
if (client) {
|
|
337
|
+
logger.debug('Publishing to topic(s)', targetTopics.join(','), message);
|
|
338
|
+
targetTopics.forEach(function (topic) { return client.send(topic, message); });
|
|
339
|
+
}
|
|
340
|
+
else {
|
|
341
|
+
logger.debug('Publishing to topic(s) failed', targetTopics.join(','), message);
|
|
342
|
+
}
|
|
308
343
|
return [2 /*return*/];
|
|
309
344
|
}
|
|
310
345
|
});
|
|
@@ -335,6 +370,7 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
335
370
|
if (options === void 0) { options = {}; }
|
|
336
371
|
var targetTopics = [].concat(topics);
|
|
337
372
|
logger.debug('Subscribing to topic(s)', targetTopics.join(','));
|
|
373
|
+
var reconnectSubscription;
|
|
338
374
|
return new zen_observable_ts_1.default(function (observer) {
|
|
339
375
|
targetTopics.forEach(function (topic) {
|
|
340
376
|
// this._topicObservers is used to notify the observers according to the topic received on the message
|
|
@@ -345,8 +381,6 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
345
381
|
}
|
|
346
382
|
observersForTopic.add(observer);
|
|
347
383
|
});
|
|
348
|
-
// @ts-ignore
|
|
349
|
-
var client;
|
|
350
384
|
var _a = options.clientId, clientId = _a === void 0 ? _this.clientId : _a;
|
|
351
385
|
// this._clientIdObservers is used to close observers when client gets disconnected
|
|
352
386
|
var observersForClientId = _this._clientIdObservers.get(clientId);
|
|
@@ -356,64 +390,95 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
356
390
|
observersForClientId.add(observer);
|
|
357
391
|
_this._clientIdObservers.set(clientId, observersForClientId);
|
|
358
392
|
(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
359
|
-
var
|
|
360
|
-
|
|
361
|
-
|
|
393
|
+
var getClient;
|
|
394
|
+
var _this = this;
|
|
395
|
+
return __generator(this, function (_a) {
|
|
396
|
+
switch (_a.label) {
|
|
362
397
|
case 0:
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
398
|
+
getClient = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
399
|
+
var _a, url, _b, client_1, e_1;
|
|
400
|
+
return __generator(this, function (_c) {
|
|
401
|
+
switch (_c.label) {
|
|
402
|
+
case 0:
|
|
403
|
+
_c.trys.push([0, 5, , 6]);
|
|
404
|
+
_a = options.url;
|
|
405
|
+
if (!(_a === void 0)) return [3 /*break*/, 2];
|
|
406
|
+
return [4 /*yield*/, this.endpoint];
|
|
407
|
+
case 1:
|
|
408
|
+
_b = _c.sent();
|
|
409
|
+
return [3 /*break*/, 3];
|
|
410
|
+
case 2:
|
|
411
|
+
_b = _a;
|
|
412
|
+
_c.label = 3;
|
|
413
|
+
case 3:
|
|
414
|
+
url = _b;
|
|
415
|
+
return [4 /*yield*/, this.connect(clientId, { url: url })];
|
|
416
|
+
case 4:
|
|
417
|
+
client_1 = _c.sent();
|
|
418
|
+
if (client_1 !== undefined) {
|
|
419
|
+
targetTopics.forEach(function (topic) {
|
|
420
|
+
client_1.subscribe(topic);
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
return [3 /*break*/, 6];
|
|
424
|
+
case 5:
|
|
425
|
+
e_1 = _c.sent();
|
|
426
|
+
logger.debug('Error forming connection', e_1);
|
|
427
|
+
return [3 /*break*/, 6];
|
|
428
|
+
case 6: return [2 /*return*/];
|
|
429
|
+
}
|
|
430
|
+
});
|
|
431
|
+
}); };
|
|
432
|
+
// Establish the initial connection
|
|
433
|
+
return [4 /*yield*/, getClient()];
|
|
366
434
|
case 1:
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
_c.label = 4;
|
|
375
|
-
case 4:
|
|
376
|
-
_c.trys.push([4, 6, , 7]);
|
|
377
|
-
return [4 /*yield*/, this.connect(clientId, { url: url })];
|
|
378
|
-
case 5:
|
|
379
|
-
client = _c.sent();
|
|
380
|
-
targetTopics.forEach(function (topic) {
|
|
381
|
-
client.subscribe(topic);
|
|
435
|
+
// Establish the initial connection
|
|
436
|
+
_a.sent();
|
|
437
|
+
// Add an observable to the reconnection list to manage reconnection for this subscription
|
|
438
|
+
reconnectSubscription = new zen_observable_ts_1.default(function (observer) {
|
|
439
|
+
_this.reconnectionMonitor.addObserver(observer);
|
|
440
|
+
}).subscribe(function () {
|
|
441
|
+
getClient();
|
|
382
442
|
});
|
|
383
|
-
return [
|
|
384
|
-
case 6:
|
|
385
|
-
e_1 = _c.sent();
|
|
386
|
-
observer.error(e_1);
|
|
387
|
-
return [3 /*break*/, 7];
|
|
388
|
-
case 7: return [2 /*return*/];
|
|
443
|
+
return [2 /*return*/];
|
|
389
444
|
}
|
|
390
445
|
});
|
|
391
446
|
}); })();
|
|
392
|
-
return function () {
|
|
447
|
+
return function () { return __awaiter(_this, void 0, void 0, function () {
|
|
448
|
+
var client;
|
|
449
|
+
var _this = this;
|
|
393
450
|
var _a, _b;
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
451
|
+
return __generator(this, function (_c) {
|
|
452
|
+
switch (_c.label) {
|
|
453
|
+
case 0: return [4 /*yield*/, this.clientsQueue.get(clientId)];
|
|
454
|
+
case 1:
|
|
455
|
+
client = _c.sent();
|
|
456
|
+
reconnectSubscription === null || reconnectSubscription === void 0 ? void 0 : reconnectSubscription.unsubscribe();
|
|
457
|
+
if (client) {
|
|
458
|
+
(_a = this._clientIdObservers.get(clientId)) === null || _a === void 0 ? void 0 : _a.delete(observer);
|
|
459
|
+
// No more observers per client => client not needed anymore
|
|
460
|
+
if (((_b = this._clientIdObservers.get(clientId)) === null || _b === void 0 ? void 0 : _b.size) === 0) {
|
|
461
|
+
this.disconnect(clientId);
|
|
462
|
+
this.connectionStateMonitor.record(ConnectionStateMonitor_1.CONNECTION_CHANGE.CLOSING_CONNECTION);
|
|
463
|
+
this._clientIdObservers.delete(clientId);
|
|
464
|
+
}
|
|
465
|
+
targetTopics.forEach(function (topic) {
|
|
466
|
+
var observersForTopic = _this._topicObservers.get(topic) ||
|
|
467
|
+
new Set();
|
|
468
|
+
observersForTopic.delete(observer);
|
|
469
|
+
// if no observers exists for the topic, topic should be removed
|
|
470
|
+
if (observersForTopic.size === 0) {
|
|
471
|
+
_this._topicObservers.delete(topic);
|
|
472
|
+
if (client.isConnected()) {
|
|
473
|
+
client.unsubscribe(topic);
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
});
|
|
411
477
|
}
|
|
412
|
-
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
};
|
|
478
|
+
return [2 /*return*/, null];
|
|
479
|
+
}
|
|
480
|
+
});
|
|
481
|
+
}); };
|
|
417
482
|
});
|
|
418
483
|
};
|
|
419
484
|
return MqttOverWSProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MqttOverWSProvider.js","sourceRoot":"","sources":["../../src/Providers/MqttOverWSProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;GAWG;AACH,8CAAkC;AAClC,6BAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"MqttOverWSProvider.js","sourceRoot":"","sources":["../../src/Providers/MqttOverWSProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Observable from 'zen-observable-ts';
|
|
2
|
-
import { PubSubProvider, ProviderOptions } from '../types';
|
|
2
|
+
import { PubSubProvider, ProviderOptions } from '../types/Provider';
|
|
3
3
|
export declare abstract class AbstractPubSubProvider implements PubSubProvider {
|
|
4
4
|
private _config;
|
|
5
5
|
constructor(options?: ProviderOptions);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare const MAX_DELAY_MS = 5000;
|
|
2
2
|
export declare const NON_RETRYABLE_CODES: number[];
|
|
3
|
+
export declare const CONNECTION_STATE_CHANGE = "ConnectionStateChange";
|
|
3
4
|
export declare enum MESSAGE_TYPES {
|
|
4
5
|
/**
|
|
5
6
|
* Client -> Server message.
|
|
@@ -84,3 +85,11 @@ export declare const DEFAULT_KEEP_ALIVE_TIMEOUT: number;
|
|
|
84
85
|
* Default Time in milleseconds to alert for missed GQL_CONNECTION_KEEP_ALIVE message
|
|
85
86
|
*/
|
|
86
87
|
export declare const DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT: number;
|
|
88
|
+
/**
|
|
89
|
+
* Default delay time in milleseconds between when reconnect is triggered vs when it is attempted
|
|
90
|
+
*/
|
|
91
|
+
export declare const RECONNECT_DELAY: number;
|
|
92
|
+
/**
|
|
93
|
+
* Default interval time in milleseconds between when reconnect is re-attempted
|
|
94
|
+
*/
|
|
95
|
+
export declare const RECONNECT_INTERVAL: number;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MAX_DELAY_MS = 5000;
|
|
4
4
|
exports.NON_RETRYABLE_CODES = [400, 401, 403];
|
|
5
|
+
exports.CONNECTION_STATE_CHANGE = 'ConnectionStateChange';
|
|
5
6
|
var MESSAGE_TYPES;
|
|
6
7
|
(function (MESSAGE_TYPES) {
|
|
7
8
|
/**
|
|
@@ -91,4 +92,12 @@ exports.DEFAULT_KEEP_ALIVE_TIMEOUT = 5 * 60 * 1000;
|
|
|
91
92
|
* Default Time in milleseconds to alert for missed GQL_CONNECTION_KEEP_ALIVE message
|
|
92
93
|
*/
|
|
93
94
|
exports.DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT = 65 * 1000;
|
|
95
|
+
/**
|
|
96
|
+
* Default delay time in milleseconds between when reconnect is triggered vs when it is attempted
|
|
97
|
+
*/
|
|
98
|
+
exports.RECONNECT_DELAY = 5 * 1000;
|
|
99
|
+
/**
|
|
100
|
+
* Default interval time in milleseconds between when reconnect is re-attempted
|
|
101
|
+
*/
|
|
102
|
+
exports.RECONNECT_INTERVAL = 60 * 1000;
|
|
94
103
|
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/Providers/constants.ts"],"names":[],"mappings":";;AAAa,QAAA,YAAY,GAAG,IAAI,CAAC;AAEpB,QAAA,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEtC,QAAA,uBAAuB,GAAG,uBAAuB,CAAC;AAE/D,IAAY,aAmDX;AAnDD,WAAY,aAAa;IACxB;;;OAGG;IACH,wDAAuC,CAAA;IACvC;;;OAGG;IACH,0DAAyC,CAAA;IACzC;;;OAGG;IACH,sDAAqC,CAAA;IACrC;;;OAGG;IACH,oCAAmB,CAAA;IACnB;;;OAGG;IACH,4CAA2B,CAAA;IAC3B;;;OAGG;IACH,kCAAiB,CAAA;IACjB;;;OAGG;IACH,iDAAgC,CAAA;IAChC;;;OAGG;IACH,kCAAiB,CAAA;IACjB;;;OAGG;IACH,0CAAyB,CAAA;IACzB;;;OAGG;IACH,oCAAmB,CAAA;AACpB,CAAC,EAnDW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAmDxB;AAED,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC9B,mEAAO,CAAA;IACP,uEAAS,CAAA;IACT,iEAAM,CAAA;AACP,CAAC,EAJW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAI9B;AAED,IAAY,aAIX;AAJD,WAAY,aAAa;IACxB,qDAAM,CAAA;IACN,mDAAK,CAAA;IACL,6DAAU,CAAA;AACX,CAAC,EAJW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAIxB;AAEY,QAAA,cAAc,GAAG,CAC7B,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU;IAChE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC/B,CAAC,CAAC,mBAAmB,CACZ,CAAC;AAEC,QAAA,4BAA4B,GAAG;IAC3C,MAAM,EAAE,mCAAmC;IAC3C,kBAAkB,EAAE,SAAS;IAC7B,cAAc,EAAE,iCAAiC;CACjD,CAAC;AAEF;;GAEG;AACU,QAAA,uBAAuB,GAAG,KAAK,CAAC;AAE7C;;GAEG;AACU,QAAA,iBAAiB,GAAG,KAAK,CAAC;AAEvC;;GAEG;AACU,QAAA,0BAA0B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAExD;;GAEG;AACU,QAAA,gCAAgC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE1D;;GAEG;AACU,QAAA,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC;AAExC;;GAEG;AACU,QAAA,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
import { PubSub } from './PubSub';
|
|
2
2
|
export * from './Providers';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
REALTIME_SUBSCRIPTION_INIT_ERROR = "AppSync Realtime subscription init error",
|
|
7
|
-
SUBSCRIPTION_ACK = "Subscription ack",
|
|
8
|
-
TIMEOUT_DISCONNECT = "Timeout disconnect"
|
|
9
|
-
}
|
|
10
|
-
export declare const CONNECTION_STATE_CHANGE = "ConnectionStateChange";
|
|
11
|
-
export { ConnectionState } from './types';
|
|
12
|
-
export { PubSub, CONTROL_MSG };
|
|
3
|
+
export { CONNECTION_STATE_CHANGE } from './Providers/constants';
|
|
4
|
+
export { ConnectionState, CONTROL_MSG } from './types';
|
|
5
|
+
export { PubSub };
|
|
13
6
|
/**
|
|
14
7
|
* @deprecated use named import
|
|
15
8
|
*/
|
package/lib/index.js
CHANGED
|
@@ -18,18 +18,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
var PubSub_1 = require("./PubSub");
|
|
19
19
|
exports.PubSub = PubSub_1.PubSub;
|
|
20
20
|
__export(require("./Providers"));
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
CONTROL_MSG["CONNECTION_CLOSED"] = "Connection closed";
|
|
24
|
-
CONTROL_MSG["CONNECTION_FAILED"] = "Connection failed";
|
|
25
|
-
CONTROL_MSG["REALTIME_SUBSCRIPTION_INIT_ERROR"] = "AppSync Realtime subscription init error";
|
|
26
|
-
CONTROL_MSG["SUBSCRIPTION_ACK"] = "Subscription ack";
|
|
27
|
-
CONTROL_MSG["TIMEOUT_DISCONNECT"] = "Timeout disconnect";
|
|
28
|
-
})(CONTROL_MSG || (CONTROL_MSG = {}));
|
|
29
|
-
exports.CONTROL_MSG = CONTROL_MSG;
|
|
30
|
-
exports.CONNECTION_STATE_CHANGE = 'ConnectionStateChange';
|
|
21
|
+
var constants_1 = require("./Providers/constants");
|
|
22
|
+
exports.CONNECTION_STATE_CHANGE = constants_1.CONNECTION_STATE_CHANGE;
|
|
31
23
|
var types_1 = require("./types");
|
|
32
24
|
exports.ConnectionState = types_1.ConnectionState;
|
|
25
|
+
exports.CONTROL_MSG = types_1.CONTROL_MSG;
|
|
33
26
|
/**
|
|
34
27
|
* @deprecated use named import
|
|
35
28
|
*/
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA;;;;;;;;;;;GAWG;AACH,mCAAkC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA;;;;;;;;;;;GAWG;AACH,mCAAkC;AAQzB,iBARA,eAAM,CAQA;AANf,iCAA4B;AAE5B,mDAAgE;AAAvD,8CAAA,uBAAuB,CAAA;AAEhC,iCAAuD;AAA9C,kCAAA,eAAe,CAAA;AAAE,8BAAA,WAAW,CAAA;AAIrC;;GAEG;AACH,kBAAe,eAAM,CAAC"}
|
package/lib/types/Provider.d.ts
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import Observable from 'zen-observable-ts';
|
|
2
|
-
|
|
2
|
+
export interface PubSubOptions {
|
|
3
|
+
[key: string]: any;
|
|
4
|
+
}
|
|
5
|
+
export interface ProviderOptions {
|
|
6
|
+
[key: string]: any;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Migrated to ProviderOptions
|
|
10
|
+
*/
|
|
11
|
+
export declare type ProvidertOptions = ProviderOptions;
|
|
3
12
|
export interface PubSubProvider {
|
|
4
13
|
configure(config: object): object;
|
|
5
14
|
getCategory(): string;
|
package/lib/types/PubSub.d.ts
CHANGED
|
@@ -1,10 +1,24 @@
|
|
|
1
|
-
export interface
|
|
2
|
-
|
|
1
|
+
export interface SubscriptionObserver<T> {
|
|
2
|
+
closed: boolean;
|
|
3
|
+
next(value: T): void;
|
|
4
|
+
error(errorValue: any): void;
|
|
5
|
+
complete(): void;
|
|
3
6
|
}
|
|
4
|
-
export
|
|
5
|
-
|
|
7
|
+
export declare enum CONTROL_MSG {
|
|
8
|
+
CONNECTION_CLOSED = "Connection closed",
|
|
9
|
+
CONNECTION_FAILED = "Connection failed",
|
|
10
|
+
REALTIME_SUBSCRIPTION_INIT_ERROR = "AppSync Realtime subscription init error",
|
|
11
|
+
SUBSCRIPTION_ACK = "Subscription ack",
|
|
12
|
+
TIMEOUT_DISCONNECT = "Timeout disconnect"
|
|
13
|
+
}
|
|
14
|
+
/** @enum {string} */
|
|
15
|
+
export declare enum ConnectionState {
|
|
16
|
+
Connected = "Connected",
|
|
17
|
+
ConnectedPendingNetwork = "ConnectedPendingNetwork",
|
|
18
|
+
ConnectionDisrupted = "ConnectionDisrupted",
|
|
19
|
+
ConnectionDisruptedPendingNetwork = "ConnectionDisruptedPendingNetwork",
|
|
20
|
+
Connecting = "Connecting",
|
|
21
|
+
ConnectedPendingDisconnect = "ConnectedPendingDisconnect",
|
|
22
|
+
Disconnected = "Disconnected",
|
|
23
|
+
ConnectedPendingKeepAlive = "ConnectedPendingKeepAlive"
|
|
6
24
|
}
|
|
7
|
-
/**
|
|
8
|
-
* @deprecated Migrated to ProviderOptions
|
|
9
|
-
*/
|
|
10
|
-
export declare type ProvidertOptions = ProviderOptions;
|
package/lib/types/PubSub.js
CHANGED
|
@@ -1,3 +1,59 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
|
|
6
|
+
* the License. A copy of the License is located at
|
|
7
|
+
*
|
|
8
|
+
* http://aws.amazon.com/apache2.0/
|
|
9
|
+
*
|
|
10
|
+
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
|
11
|
+
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
|
|
12
|
+
* and limitations under the License.
|
|
13
|
+
*/
|
|
2
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
var CONTROL_MSG;
|
|
16
|
+
(function (CONTROL_MSG) {
|
|
17
|
+
CONTROL_MSG["CONNECTION_CLOSED"] = "Connection closed";
|
|
18
|
+
CONTROL_MSG["CONNECTION_FAILED"] = "Connection failed";
|
|
19
|
+
CONTROL_MSG["REALTIME_SUBSCRIPTION_INIT_ERROR"] = "AppSync Realtime subscription init error";
|
|
20
|
+
CONTROL_MSG["SUBSCRIPTION_ACK"] = "Subscription ack";
|
|
21
|
+
CONTROL_MSG["TIMEOUT_DISCONNECT"] = "Timeout disconnect";
|
|
22
|
+
})(CONTROL_MSG = exports.CONTROL_MSG || (exports.CONTROL_MSG = {}));
|
|
23
|
+
/** @enum {string} */
|
|
24
|
+
var ConnectionState;
|
|
25
|
+
(function (ConnectionState) {
|
|
26
|
+
/*
|
|
27
|
+
* The connection is alive and healthy
|
|
28
|
+
*/
|
|
29
|
+
ConnectionState["Connected"] = "Connected";
|
|
30
|
+
/*
|
|
31
|
+
* The connection is alive, but the connection is offline
|
|
32
|
+
*/
|
|
33
|
+
ConnectionState["ConnectedPendingNetwork"] = "ConnectedPendingNetwork";
|
|
34
|
+
/*
|
|
35
|
+
* The connection has been disconnected while in use
|
|
36
|
+
*/
|
|
37
|
+
ConnectionState["ConnectionDisrupted"] = "ConnectionDisrupted";
|
|
38
|
+
/*
|
|
39
|
+
* The connection has been disconnected and the network is offline
|
|
40
|
+
*/
|
|
41
|
+
ConnectionState["ConnectionDisruptedPendingNetwork"] = "ConnectionDisruptedPendingNetwork";
|
|
42
|
+
/*
|
|
43
|
+
* The connection is in the process of connecting
|
|
44
|
+
*/
|
|
45
|
+
ConnectionState["Connecting"] = "Connecting";
|
|
46
|
+
/*
|
|
47
|
+
* The connection is not in use and is being disconnected
|
|
48
|
+
*/
|
|
49
|
+
ConnectionState["ConnectedPendingDisconnect"] = "ConnectedPendingDisconnect";
|
|
50
|
+
/*
|
|
51
|
+
* The connection is not in use and has been disconnected
|
|
52
|
+
*/
|
|
53
|
+
ConnectionState["Disconnected"] = "Disconnected";
|
|
54
|
+
/*
|
|
55
|
+
* The connection is alive, but a keep alive message has been missed
|
|
56
|
+
*/
|
|
57
|
+
ConnectionState["ConnectedPendingKeepAlive"] = "ConnectedPendingKeepAlive";
|
|
58
|
+
})(ConnectionState = exports.ConnectionState || (exports.ConnectionState = {}));
|
|
3
59
|
//# sourceMappingURL=PubSub.js.map
|