@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
|
@@ -85,7 +85,11 @@ import * as Paho from 'paho-mqtt';
|
|
|
85
85
|
import { v4 as uuid } from 'uuid';
|
|
86
86
|
import Observable from 'zen-observable-ts';
|
|
87
87
|
import { AbstractPubSubProvider } from './PubSubProvider';
|
|
88
|
-
import {
|
|
88
|
+
import { ConnectionState } from '../types/PubSub';
|
|
89
|
+
import { ConsoleLogger as Logger, Hub } from '@aws-amplify/core';
|
|
90
|
+
import { ConnectionStateMonitor, CONNECTION_CHANGE, } from '../utils/ConnectionStateMonitor';
|
|
91
|
+
import { ReconnectEvent, ReconnectionMonitor, } from '../utils/ReconnectionMonitor';
|
|
92
|
+
import { AMPLIFY_SYMBOL, CONNECTION_STATE_CHANGE } from './constants';
|
|
89
93
|
var logger = new Logger('MqttOverWSProvider');
|
|
90
94
|
export function mqttTopicMatch(filter, topic) {
|
|
91
95
|
var filterArray = filter.split('/');
|
|
@@ -108,14 +112,15 @@ var ClientsQueue = /** @class */ (function () {
|
|
|
108
112
|
ClientsQueue.prototype.get = function (clientId, clientFactory) {
|
|
109
113
|
return __awaiter(this, void 0, void 0, function () {
|
|
110
114
|
var cachedPromise, newPromise;
|
|
115
|
+
var _this = this;
|
|
111
116
|
return __generator(this, function (_a) {
|
|
112
117
|
cachedPromise = this.promises.get(clientId);
|
|
113
|
-
if (cachedPromise)
|
|
118
|
+
if (cachedPromise)
|
|
114
119
|
return [2 /*return*/, cachedPromise];
|
|
115
|
-
}
|
|
116
120
|
if (clientFactory) {
|
|
117
121
|
newPromise = clientFactory(clientId);
|
|
118
122
|
this.promises.set(clientId, newPromise);
|
|
123
|
+
newPromise.catch(function (v) { return _this.promises.delete(clientId); });
|
|
119
124
|
return [2 /*return*/, newPromise];
|
|
120
125
|
}
|
|
121
126
|
return [2 /*return*/, undefined];
|
|
@@ -134,6 +139,9 @@ var ClientsQueue = /** @class */ (function () {
|
|
|
134
139
|
};
|
|
135
140
|
return ClientsQueue;
|
|
136
141
|
}());
|
|
142
|
+
var dispatchPubSubEvent = function (event, data, message) {
|
|
143
|
+
Hub.dispatch('pubsub', { event: event, data: data, message: message }, 'PubSub', AMPLIFY_SYMBOL);
|
|
144
|
+
};
|
|
137
145
|
var topicSymbol = typeof Symbol !== 'undefined' ? Symbol('topic') : '@@topic';
|
|
138
146
|
var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
139
147
|
__extends(MqttOverWSProvider, _super);
|
|
@@ -141,8 +149,26 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
141
149
|
if (options === void 0) { options = {}; }
|
|
142
150
|
var _this = _super.call(this, __assign(__assign({}, options), { clientId: options.clientId || uuid() })) || this;
|
|
143
151
|
_this._clientsQueue = new ClientsQueue();
|
|
152
|
+
_this.connectionStateMonitor = new ConnectionStateMonitor();
|
|
153
|
+
_this.reconnectionMonitor = new ReconnectionMonitor();
|
|
144
154
|
_this._topicObservers = new Map();
|
|
145
155
|
_this._clientIdObservers = new Map();
|
|
156
|
+
// Monitor the connection health state and pass changes along to Hub
|
|
157
|
+
_this.connectionStateMonitor.connectionStateObservable.subscribe(function (connectionStateChange) {
|
|
158
|
+
dispatchPubSubEvent(CONNECTION_STATE_CHANGE, {
|
|
159
|
+
provider: _this,
|
|
160
|
+
connectionState: connectionStateChange,
|
|
161
|
+
}, "Connection state is " + connectionStateChange);
|
|
162
|
+
_this.connectionState = connectionStateChange;
|
|
163
|
+
// Trigger reconnection when the connection is disrupted
|
|
164
|
+
if (connectionStateChange === ConnectionState.ConnectionDisrupted) {
|
|
165
|
+
_this.reconnectionMonitor.record(ReconnectEvent.START_RECONNECT);
|
|
166
|
+
}
|
|
167
|
+
else if (connectionStateChange !== ConnectionState.Connecting) {
|
|
168
|
+
// Trigger connected to halt reconnection attempts
|
|
169
|
+
_this.reconnectionMonitor.record(ReconnectEvent.HALT_RECONNECT);
|
|
170
|
+
}
|
|
171
|
+
});
|
|
146
172
|
return _this;
|
|
147
173
|
}
|
|
148
174
|
Object.defineProperty(MqttOverWSProvider.prototype, "clientId", {
|
|
@@ -181,11 +207,9 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
181
207
|
return 'MqttOverWSProvider';
|
|
182
208
|
};
|
|
183
209
|
MqttOverWSProvider.prototype.onDisconnect = function (_a) {
|
|
184
|
-
var _this = this;
|
|
185
210
|
var clientId = _a.clientId, errorCode = _a.errorCode, args = __rest(_a, ["clientId", "errorCode"]);
|
|
186
211
|
if (errorCode !== 0) {
|
|
187
212
|
logger.warn(clientId, JSON.stringify(__assign({ errorCode: errorCode }, args), null, 2));
|
|
188
|
-
var topicsToDelete_1 = [];
|
|
189
213
|
if (!clientId) {
|
|
190
214
|
return;
|
|
191
215
|
}
|
|
@@ -193,35 +217,20 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
193
217
|
if (!clientIdObservers) {
|
|
194
218
|
return;
|
|
195
219
|
}
|
|
196
|
-
|
|
197
|
-
observer.error('Disconnected, error code: ' + errorCode);
|
|
198
|
-
// removing observers for disconnected clientId
|
|
199
|
-
_this._topicObservers.forEach(function (observerForTopic, observerTopic) {
|
|
200
|
-
observerForTopic.delete(observer);
|
|
201
|
-
if (observerForTopic.size === 0) {
|
|
202
|
-
topicsToDelete_1.push(observerTopic);
|
|
203
|
-
}
|
|
204
|
-
});
|
|
205
|
-
});
|
|
206
|
-
// forgiving any trace of clientId
|
|
207
|
-
this._clientIdObservers.delete(clientId);
|
|
208
|
-
// Removing topics that are not listen by an observer
|
|
209
|
-
topicsToDelete_1.forEach(function (topic) {
|
|
210
|
-
_this._topicObservers.delete(topic);
|
|
211
|
-
});
|
|
220
|
+
this.disconnect(clientId);
|
|
212
221
|
}
|
|
213
222
|
};
|
|
214
223
|
MqttOverWSProvider.prototype.newClient = function (_a) {
|
|
215
224
|
var url = _a.url, clientId = _a.clientId;
|
|
216
225
|
return __awaiter(this, void 0, void 0, function () {
|
|
217
|
-
var client;
|
|
226
|
+
var client, connected;
|
|
218
227
|
var _this = this;
|
|
219
228
|
return __generator(this, function (_b) {
|
|
220
229
|
switch (_b.label) {
|
|
221
230
|
case 0:
|
|
222
231
|
logger.debug('Creating new MQTT client', clientId);
|
|
232
|
+
this.connectionStateMonitor.record(CONNECTION_CHANGE.OPENING_CONNECTION);
|
|
223
233
|
client = new Paho.Client(url, clientId);
|
|
224
|
-
// client.trace = (args) => logger.debug(clientId, JSON.stringify(args, null, 2));
|
|
225
234
|
client.onMessageArrived = function (_a) {
|
|
226
235
|
var topic = _a.destinationName, msg = _a.payloadString;
|
|
227
236
|
_this._onMessage(topic, msg);
|
|
@@ -229,17 +238,26 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
229
238
|
client.onConnectionLost = function (_a) {
|
|
230
239
|
var errorCode = _a.errorCode, args = __rest(_a, ["errorCode"]);
|
|
231
240
|
_this.onDisconnect(__assign({ clientId: clientId, errorCode: errorCode }, args));
|
|
241
|
+
_this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);
|
|
232
242
|
};
|
|
233
243
|
return [4 /*yield*/, new Promise(function (resolve, reject) {
|
|
234
244
|
client.connect({
|
|
235
245
|
useSSL: _this.isSSLEnabled,
|
|
236
246
|
mqttVersion: 3,
|
|
237
|
-
onSuccess: function () { return resolve(
|
|
238
|
-
onFailure:
|
|
247
|
+
onSuccess: function () { return resolve(true); },
|
|
248
|
+
onFailure: function (x) {
|
|
249
|
+
if (clientId)
|
|
250
|
+
_this._clientsQueue.remove(clientId);
|
|
251
|
+
_this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);
|
|
252
|
+
resolve(false);
|
|
253
|
+
},
|
|
239
254
|
});
|
|
240
255
|
})];
|
|
241
256
|
case 1:
|
|
242
|
-
_b.sent();
|
|
257
|
+
connected = _b.sent();
|
|
258
|
+
if (connected) {
|
|
259
|
+
this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_ESTABLISHED);
|
|
260
|
+
}
|
|
243
261
|
return [2 /*return*/, client];
|
|
244
262
|
}
|
|
245
263
|
});
|
|
@@ -251,9 +269,23 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
251
269
|
var _this = this;
|
|
252
270
|
return __generator(this, function (_a) {
|
|
253
271
|
switch (_a.label) {
|
|
254
|
-
case 0: return [4 /*yield*/, this.clientsQueue.get(clientId, function (clientId) {
|
|
255
|
-
|
|
256
|
-
|
|
272
|
+
case 0: return [4 /*yield*/, this.clientsQueue.get(clientId, function (clientId) { return __awaiter(_this, void 0, void 0, function () {
|
|
273
|
+
var client;
|
|
274
|
+
return __generator(this, function (_a) {
|
|
275
|
+
switch (_a.label) {
|
|
276
|
+
case 0: return [4 /*yield*/, this.newClient(__assign(__assign({}, options), { clientId: clientId }))];
|
|
277
|
+
case 1:
|
|
278
|
+
client = _a.sent();
|
|
279
|
+
if (client) {
|
|
280
|
+
// Once connected, subscribe to all topics registered observers
|
|
281
|
+
this._topicObservers.forEach(function (_value, key) {
|
|
282
|
+
client.subscribe(key);
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
return [2 /*return*/, client];
|
|
286
|
+
}
|
|
287
|
+
});
|
|
288
|
+
}); })];
|
|
257
289
|
case 1: return [2 /*return*/, _a.sent()];
|
|
258
290
|
}
|
|
259
291
|
});
|
|
@@ -271,6 +303,7 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
271
303
|
client.disconnect();
|
|
272
304
|
}
|
|
273
305
|
this.clientsQueue.remove(clientId);
|
|
306
|
+
this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);
|
|
274
307
|
return [2 /*return*/];
|
|
275
308
|
}
|
|
276
309
|
});
|
|
@@ -278,20 +311,22 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
278
311
|
};
|
|
279
312
|
MqttOverWSProvider.prototype.publish = function (topics, msg) {
|
|
280
313
|
return __awaiter(this, void 0, void 0, function () {
|
|
281
|
-
var targetTopics, message,
|
|
314
|
+
var targetTopics, message, client;
|
|
282
315
|
return __generator(this, function (_a) {
|
|
283
316
|
switch (_a.label) {
|
|
284
317
|
case 0:
|
|
285
318
|
targetTopics = [].concat(topics);
|
|
286
319
|
message = JSON.stringify(msg);
|
|
287
|
-
return [4 /*yield*/, this.
|
|
320
|
+
return [4 /*yield*/, this.clientsQueue.get(this.clientId)];
|
|
288
321
|
case 1:
|
|
289
|
-
url = _a.sent();
|
|
290
|
-
return [4 /*yield*/, this.connect(this.clientId, { url: url })];
|
|
291
|
-
case 2:
|
|
292
322
|
client = _a.sent();
|
|
293
|
-
|
|
294
|
-
|
|
323
|
+
if (client) {
|
|
324
|
+
logger.debug('Publishing to topic(s)', targetTopics.join(','), message);
|
|
325
|
+
targetTopics.forEach(function (topic) { return client.send(topic, message); });
|
|
326
|
+
}
|
|
327
|
+
else {
|
|
328
|
+
logger.debug('Publishing to topic(s) failed', targetTopics.join(','), message);
|
|
329
|
+
}
|
|
295
330
|
return [2 /*return*/];
|
|
296
331
|
}
|
|
297
332
|
});
|
|
@@ -322,6 +357,7 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
322
357
|
if (options === void 0) { options = {}; }
|
|
323
358
|
var targetTopics = [].concat(topics);
|
|
324
359
|
logger.debug('Subscribing to topic(s)', targetTopics.join(','));
|
|
360
|
+
var reconnectSubscription;
|
|
325
361
|
return new Observable(function (observer) {
|
|
326
362
|
targetTopics.forEach(function (topic) {
|
|
327
363
|
// this._topicObservers is used to notify the observers according to the topic received on the message
|
|
@@ -332,8 +368,6 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
332
368
|
}
|
|
333
369
|
observersForTopic.add(observer);
|
|
334
370
|
});
|
|
335
|
-
// @ts-ignore
|
|
336
|
-
var client;
|
|
337
371
|
var _a = options.clientId, clientId = _a === void 0 ? _this.clientId : _a;
|
|
338
372
|
// this._clientIdObservers is used to close observers when client gets disconnected
|
|
339
373
|
var observersForClientId = _this._clientIdObservers.get(clientId);
|
|
@@ -343,64 +377,95 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
343
377
|
observersForClientId.add(observer);
|
|
344
378
|
_this._clientIdObservers.set(clientId, observersForClientId);
|
|
345
379
|
(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
346
|
-
var
|
|
347
|
-
|
|
348
|
-
|
|
380
|
+
var getClient;
|
|
381
|
+
var _this = this;
|
|
382
|
+
return __generator(this, function (_a) {
|
|
383
|
+
switch (_a.label) {
|
|
349
384
|
case 0:
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
385
|
+
getClient = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
386
|
+
var _a, url, _b, client_1, e_1;
|
|
387
|
+
return __generator(this, function (_c) {
|
|
388
|
+
switch (_c.label) {
|
|
389
|
+
case 0:
|
|
390
|
+
_c.trys.push([0, 5, , 6]);
|
|
391
|
+
_a = options.url;
|
|
392
|
+
if (!(_a === void 0)) return [3 /*break*/, 2];
|
|
393
|
+
return [4 /*yield*/, this.endpoint];
|
|
394
|
+
case 1:
|
|
395
|
+
_b = _c.sent();
|
|
396
|
+
return [3 /*break*/, 3];
|
|
397
|
+
case 2:
|
|
398
|
+
_b = _a;
|
|
399
|
+
_c.label = 3;
|
|
400
|
+
case 3:
|
|
401
|
+
url = _b;
|
|
402
|
+
return [4 /*yield*/, this.connect(clientId, { url: url })];
|
|
403
|
+
case 4:
|
|
404
|
+
client_1 = _c.sent();
|
|
405
|
+
if (client_1 !== undefined) {
|
|
406
|
+
targetTopics.forEach(function (topic) {
|
|
407
|
+
client_1.subscribe(topic);
|
|
408
|
+
});
|
|
409
|
+
}
|
|
410
|
+
return [3 /*break*/, 6];
|
|
411
|
+
case 5:
|
|
412
|
+
e_1 = _c.sent();
|
|
413
|
+
logger.debug('Error forming connection', e_1);
|
|
414
|
+
return [3 /*break*/, 6];
|
|
415
|
+
case 6: return [2 /*return*/];
|
|
416
|
+
}
|
|
417
|
+
});
|
|
418
|
+
}); };
|
|
419
|
+
// Establish the initial connection
|
|
420
|
+
return [4 /*yield*/, getClient()];
|
|
353
421
|
case 1:
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
_c.label = 4;
|
|
362
|
-
case 4:
|
|
363
|
-
_c.trys.push([4, 6, , 7]);
|
|
364
|
-
return [4 /*yield*/, this.connect(clientId, { url: url })];
|
|
365
|
-
case 5:
|
|
366
|
-
client = _c.sent();
|
|
367
|
-
targetTopics.forEach(function (topic) {
|
|
368
|
-
client.subscribe(topic);
|
|
422
|
+
// Establish the initial connection
|
|
423
|
+
_a.sent();
|
|
424
|
+
// Add an observable to the reconnection list to manage reconnection for this subscription
|
|
425
|
+
reconnectSubscription = new Observable(function (observer) {
|
|
426
|
+
_this.reconnectionMonitor.addObserver(observer);
|
|
427
|
+
}).subscribe(function () {
|
|
428
|
+
getClient();
|
|
369
429
|
});
|
|
370
|
-
return [
|
|
371
|
-
case 6:
|
|
372
|
-
e_1 = _c.sent();
|
|
373
|
-
observer.error(e_1);
|
|
374
|
-
return [3 /*break*/, 7];
|
|
375
|
-
case 7: return [2 /*return*/];
|
|
430
|
+
return [2 /*return*/];
|
|
376
431
|
}
|
|
377
432
|
});
|
|
378
433
|
}); })();
|
|
379
|
-
return function () {
|
|
434
|
+
return function () { return __awaiter(_this, void 0, void 0, function () {
|
|
435
|
+
var client;
|
|
436
|
+
var _this = this;
|
|
380
437
|
var _a, _b;
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
438
|
+
return __generator(this, function (_c) {
|
|
439
|
+
switch (_c.label) {
|
|
440
|
+
case 0: return [4 /*yield*/, this.clientsQueue.get(clientId)];
|
|
441
|
+
case 1:
|
|
442
|
+
client = _c.sent();
|
|
443
|
+
reconnectSubscription === null || reconnectSubscription === void 0 ? void 0 : reconnectSubscription.unsubscribe();
|
|
444
|
+
if (client) {
|
|
445
|
+
(_a = this._clientIdObservers.get(clientId)) === null || _a === void 0 ? void 0 : _a.delete(observer);
|
|
446
|
+
// No more observers per client => client not needed anymore
|
|
447
|
+
if (((_b = this._clientIdObservers.get(clientId)) === null || _b === void 0 ? void 0 : _b.size) === 0) {
|
|
448
|
+
this.disconnect(clientId);
|
|
449
|
+
this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSING_CONNECTION);
|
|
450
|
+
this._clientIdObservers.delete(clientId);
|
|
451
|
+
}
|
|
452
|
+
targetTopics.forEach(function (topic) {
|
|
453
|
+
var observersForTopic = _this._topicObservers.get(topic) ||
|
|
454
|
+
new Set();
|
|
455
|
+
observersForTopic.delete(observer);
|
|
456
|
+
// if no observers exists for the topic, topic should be removed
|
|
457
|
+
if (observersForTopic.size === 0) {
|
|
458
|
+
_this._topicObservers.delete(topic);
|
|
459
|
+
if (client.isConnected()) {
|
|
460
|
+
client.unsubscribe(topic);
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
});
|
|
398
464
|
}
|
|
399
|
-
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
};
|
|
465
|
+
return [2 /*return*/, null];
|
|
466
|
+
}
|
|
467
|
+
});
|
|
468
|
+
}); };
|
|
404
469
|
});
|
|
405
470
|
};
|
|
406
471
|
return MqttOverWSProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MqttOverWSProvider.js","sourceRoot":"","sources":["../../src/Providers/MqttOverWSProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,
|
|
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;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export var MAX_DELAY_MS = 5000;
|
|
2
2
|
export var NON_RETRYABLE_CODES = [400, 401, 403];
|
|
3
|
+
export var CONNECTION_STATE_CHANGE = 'ConnectionStateChange';
|
|
3
4
|
export var MESSAGE_TYPES;
|
|
4
5
|
(function (MESSAGE_TYPES) {
|
|
5
6
|
/**
|
|
@@ -89,4 +90,12 @@ export var DEFAULT_KEEP_ALIVE_TIMEOUT = 5 * 60 * 1000;
|
|
|
89
90
|
* Default Time in milleseconds to alert for missed GQL_CONNECTION_KEEP_ALIVE message
|
|
90
91
|
*/
|
|
91
92
|
export var DEFAULT_KEEP_ALIVE_ALERT_TIMEOUT = 65 * 1000;
|
|
93
|
+
/**
|
|
94
|
+
* Default delay time in milleseconds between when reconnect is triggered vs when it is attempted
|
|
95
|
+
*/
|
|
96
|
+
export var RECONNECT_DELAY = 5 * 1000;
|
|
97
|
+
/**
|
|
98
|
+
* Default interval time in milleseconds between when reconnect is re-attempted
|
|
99
|
+
*/
|
|
100
|
+
export var RECONNECT_INTERVAL = 60 * 1000;
|
|
92
101
|
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/Providers/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,YAAY,GAAG,IAAI,CAAC;AAEjC,MAAM,CAAC,IAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEnD,MAAM,CAAC,IAAM,uBAAuB,GAAG,uBAAuB,CAAC;AAE/D,MAAM,CAAN,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,KAAb,aAAa,QAmDxB;AAED,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC9B,mEAAO,CAAA;IACP,uEAAS,CAAA;IACT,iEAAM,CAAA;AACP,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;AAED,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACxB,qDAAM,CAAA;IACN,mDAAK,CAAA;IACL,6DAAU,CAAA;AACX,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED,MAAM,CAAC,IAAM,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;AAEZ,MAAM,CAAC,IAAM,4BAA4B,GAAG;IAC3C,MAAM,EAAE,mCAAmC;IAC3C,kBAAkB,EAAE,SAAS;IAC7B,cAAc,EAAE,iCAAiC;CACjD,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,IAAM,uBAAuB,GAAG,KAAK,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,IAAM,iBAAiB,GAAG,KAAK,CAAC;AAEvC;;GAEG;AACH,MAAM,CAAC,IAAM,0BAA0B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAExD;;GAEG;AACH,MAAM,CAAC,IAAM,gCAAgC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE1D;;GAEG;AACH,MAAM,CAAC,IAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,IAAM,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAC"}
|
package/lib-esm/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-esm/index.js
CHANGED
|
@@ -12,17 +12,9 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { PubSub } from './PubSub';
|
|
14
14
|
export * from './Providers';
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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 || (CONTROL_MSG = {}));
|
|
23
|
-
export var CONNECTION_STATE_CHANGE = 'ConnectionStateChange';
|
|
24
|
-
export { ConnectionState } from './types';
|
|
25
|
-
export { PubSub, CONTROL_MSG };
|
|
15
|
+
export { CONNECTION_STATE_CHANGE } from './Providers/constants';
|
|
16
|
+
export { ConnectionState, CONTROL_MSG } from './types';
|
|
17
|
+
export { PubSub };
|
|
26
18
|
/**
|
|
27
19
|
* @deprecated use named import
|
|
28
20
|
*/
|
package/lib-esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,cAAc,aAAa,CAAC;AAE5B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB;;GAEG;AACH,eAAe,MAAM,CAAC"}
|
|
@@ -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;
|
|
@@ -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-esm/types/PubSub.js
CHANGED
|
@@ -1 +1,57 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
|
|
5
|
+
* the License. A copy of the License is located at
|
|
6
|
+
*
|
|
7
|
+
* http://aws.amazon.com/apache2.0/
|
|
8
|
+
*
|
|
9
|
+
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
|
10
|
+
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
|
|
11
|
+
* and limitations under the License.
|
|
12
|
+
*/
|
|
13
|
+
export var CONTROL_MSG;
|
|
14
|
+
(function (CONTROL_MSG) {
|
|
15
|
+
CONTROL_MSG["CONNECTION_CLOSED"] = "Connection closed";
|
|
16
|
+
CONTROL_MSG["CONNECTION_FAILED"] = "Connection failed";
|
|
17
|
+
CONTROL_MSG["REALTIME_SUBSCRIPTION_INIT_ERROR"] = "AppSync Realtime subscription init error";
|
|
18
|
+
CONTROL_MSG["SUBSCRIPTION_ACK"] = "Subscription ack";
|
|
19
|
+
CONTROL_MSG["TIMEOUT_DISCONNECT"] = "Timeout disconnect";
|
|
20
|
+
})(CONTROL_MSG || (CONTROL_MSG = {}));
|
|
21
|
+
/** @enum {string} */
|
|
22
|
+
export var ConnectionState;
|
|
23
|
+
(function (ConnectionState) {
|
|
24
|
+
/*
|
|
25
|
+
* The connection is alive and healthy
|
|
26
|
+
*/
|
|
27
|
+
ConnectionState["Connected"] = "Connected";
|
|
28
|
+
/*
|
|
29
|
+
* The connection is alive, but the connection is offline
|
|
30
|
+
*/
|
|
31
|
+
ConnectionState["ConnectedPendingNetwork"] = "ConnectedPendingNetwork";
|
|
32
|
+
/*
|
|
33
|
+
* The connection has been disconnected while in use
|
|
34
|
+
*/
|
|
35
|
+
ConnectionState["ConnectionDisrupted"] = "ConnectionDisrupted";
|
|
36
|
+
/*
|
|
37
|
+
* The connection has been disconnected and the network is offline
|
|
38
|
+
*/
|
|
39
|
+
ConnectionState["ConnectionDisruptedPendingNetwork"] = "ConnectionDisruptedPendingNetwork";
|
|
40
|
+
/*
|
|
41
|
+
* The connection is in the process of connecting
|
|
42
|
+
*/
|
|
43
|
+
ConnectionState["Connecting"] = "Connecting";
|
|
44
|
+
/*
|
|
45
|
+
* The connection is not in use and is being disconnected
|
|
46
|
+
*/
|
|
47
|
+
ConnectionState["ConnectedPendingDisconnect"] = "ConnectedPendingDisconnect";
|
|
48
|
+
/*
|
|
49
|
+
* The connection is not in use and has been disconnected
|
|
50
|
+
*/
|
|
51
|
+
ConnectionState["Disconnected"] = "Disconnected";
|
|
52
|
+
/*
|
|
53
|
+
* The connection is alive, but a keep alive message has been missed
|
|
54
|
+
*/
|
|
55
|
+
ConnectionState["ConnectedPendingKeepAlive"] = "ConnectedPendingKeepAlive";
|
|
56
|
+
})(ConnectionState || (ConnectionState = {}));
|
|
1
57
|
//# sourceMappingURL=PubSub.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PubSub.js","sourceRoot":"","sources":["../../src/types/PubSub.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"PubSub.js","sourceRoot":"","sources":["../../src/types/PubSub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH,MAAM,CAAN,IAAY,WAMX;AAND,WAAY,WAAW;IACtB,sDAAuC,CAAA;IACvC,sDAAuC,CAAA;IACvC,4FAA6E,CAAA;IAC7E,oDAAqC,CAAA;IACrC,wDAAyC,CAAA;AAC1C,CAAC,EANW,WAAW,KAAX,WAAW,QAMtB;AAED,qBAAqB;AACrB,MAAM,CAAN,IAAY,eAiCX;AAjCD,WAAY,eAAe;IAC1B;;OAEG;IACH,0CAAuB,CAAA;IACvB;;OAEG;IACH,sEAAmD,CAAA;IACnD;;OAEG;IACH,8DAA2C,CAAA;IAC3C;;OAEG;IACH,0FAAuE,CAAA;IACvE;;OAEG;IACH,4CAAyB,CAAA;IACzB;;OAEG;IACH,4EAAyD,CAAA;IACzD;;OAEG;IACH,gDAA6B,CAAA;IAC7B;;OAEG;IACH,0EAAuD,CAAA;AACxD,CAAC,EAjCW,eAAe,KAAf,eAAe,QAiC1B"}
|