@aws-amplify/pubsub 4.4.9 → 4.4.10-next.20
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 +1260 -2214
- 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/AWSAppSyncProvider.js +20 -102
- package/lib/Providers/AWSAppSyncProvider.js.map +1 -1
- package/lib/Providers/AWSAppSyncRealTimeProvider/index.d.ts +10 -2
- package/lib/Providers/AWSAppSyncRealTimeProvider/index.js +166 -208
- package/lib/Providers/AWSAppSyncRealTimeProvider/index.js.map +1 -1
- package/lib/Providers/AWSIotProvider.js +4 -52
- package/lib/Providers/AWSIotProvider.js.map +1 -1
- package/lib/Providers/MqttOverWSProvider.d.ts +5 -1
- package/lib/Providers/MqttOverWSProvider.js +172 -187
- package/lib/Providers/MqttOverWSProvider.js.map +1 -1
- package/lib/Providers/PubSubProvider.d.ts +1 -1
- package/lib/Providers/PubSubProvider.js +3 -13
- package/lib/Providers/PubSubProvider.js.map +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/Providers/index.js +6 -8
- package/lib/Providers/index.js.map +1 -1
- package/lib/PubSub.js +6 -44
- package/lib/PubSub.js.map +1 -1
- package/lib/index.d.ts +3 -10
- package/lib/index.js +5 -14
- 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 +2 -36
- package/lib/types/index.js.map +1 -1
- package/lib/utils/ConnectionStateMonitor.d.ts +2 -1
- package/lib/utils/ConnectionStateMonitor.js +25 -30
- 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 +9 -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/AWSAppSyncProvider.js +1 -80
- package/lib-esm/Providers/AWSAppSyncProvider.js.map +1 -1
- package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.d.ts +10 -2
- package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js +130 -162
- package/lib-esm/Providers/AWSAppSyncRealTimeProvider/index.js.map +1 -1
- package/lib-esm/Providers/AWSIotProvider.js +1 -49
- package/lib-esm/Providers/AWSIotProvider.js.map +1 -1
- package/lib-esm/Providers/MqttOverWSProvider.d.ts +5 -1
- package/lib-esm/Providers/MqttOverWSProvider.js +154 -159
- package/lib-esm/Providers/MqttOverWSProvider.js.map +1 -1
- package/lib-esm/Providers/PubSubProvider.d.ts +1 -1
- package/lib-esm/Providers/PubSubProvider.js +1 -11
- package/lib-esm/Providers/PubSubProvider.js.map +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/PubSub.js +1 -36
- package/lib-esm/PubSub.js.map +1 -1
- 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 +14 -16
- 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 +6 -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
|
@@ -1,74 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
var extendStatics = function (d, b) {
|
|
3
|
-
extendStatics = Object.setPrototypeOf ||
|
|
4
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
|
-
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
6
|
-
return extendStatics(d, b);
|
|
7
|
-
};
|
|
8
|
-
return function (d, b) {
|
|
9
|
-
extendStatics(d, b);
|
|
10
|
-
function __() { this.constructor = d; }
|
|
11
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
12
|
-
};
|
|
13
|
-
})();
|
|
14
|
-
var __assign = (this && this.__assign) || function () {
|
|
15
|
-
__assign = Object.assign || function(t) {
|
|
16
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
17
|
-
s = arguments[i];
|
|
18
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
19
|
-
t[p] = s[p];
|
|
20
|
-
}
|
|
21
|
-
return t;
|
|
22
|
-
};
|
|
23
|
-
return __assign.apply(this, arguments);
|
|
24
|
-
};
|
|
25
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
35
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
36
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
37
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
38
|
-
function step(op) {
|
|
39
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
40
|
-
while (_) try {
|
|
41
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
42
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
43
|
-
switch (op[0]) {
|
|
44
|
-
case 0: case 1: t = op; break;
|
|
45
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
46
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
47
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
48
|
-
default:
|
|
49
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
50
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
51
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
52
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
53
|
-
if (t[2]) _.ops.pop();
|
|
54
|
-
_.trys.pop(); continue;
|
|
55
|
-
}
|
|
56
|
-
op = body.call(thisArg, _);
|
|
57
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
58
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
62
|
-
var t = {};
|
|
63
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
64
|
-
t[p] = s[p];
|
|
65
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
66
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
67
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
68
|
-
t[p[i]] = s[p[i]];
|
|
69
|
-
}
|
|
70
|
-
return t;
|
|
71
|
-
};
|
|
1
|
+
import { __assign, __awaiter, __extends, __generator, __rest } from "tslib";
|
|
72
2
|
/*
|
|
73
3
|
* Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
74
4
|
*
|
|
@@ -85,7 +15,11 @@ import * as Paho from 'paho-mqtt';
|
|
|
85
15
|
import { v4 as uuid } from 'uuid';
|
|
86
16
|
import Observable from 'zen-observable-ts';
|
|
87
17
|
import { AbstractPubSubProvider } from './PubSubProvider';
|
|
88
|
-
import {
|
|
18
|
+
import { ConnectionState } from '../types/PubSub';
|
|
19
|
+
import { ConsoleLogger as Logger, Hub } from '@aws-amplify/core';
|
|
20
|
+
import { ConnectionStateMonitor, CONNECTION_CHANGE, } from '../utils/ConnectionStateMonitor';
|
|
21
|
+
import { ReconnectEvent, ReconnectionMonitor, } from '../utils/ReconnectionMonitor';
|
|
22
|
+
import { AMPLIFY_SYMBOL, CONNECTION_STATE_CHANGE } from './constants';
|
|
89
23
|
var logger = new Logger('MqttOverWSProvider');
|
|
90
24
|
export function mqttTopicMatch(filter, topic) {
|
|
91
25
|
var filterArray = filter.split('/');
|
|
@@ -108,14 +42,15 @@ var ClientsQueue = /** @class */ (function () {
|
|
|
108
42
|
ClientsQueue.prototype.get = function (clientId, clientFactory) {
|
|
109
43
|
return __awaiter(this, void 0, void 0, function () {
|
|
110
44
|
var cachedPromise, newPromise;
|
|
45
|
+
var _this = this;
|
|
111
46
|
return __generator(this, function (_a) {
|
|
112
47
|
cachedPromise = this.promises.get(clientId);
|
|
113
|
-
if (cachedPromise)
|
|
48
|
+
if (cachedPromise)
|
|
114
49
|
return [2 /*return*/, cachedPromise];
|
|
115
|
-
}
|
|
116
50
|
if (clientFactory) {
|
|
117
51
|
newPromise = clientFactory(clientId);
|
|
118
52
|
this.promises.set(clientId, newPromise);
|
|
53
|
+
newPromise.catch(function (v) { return _this.promises.delete(clientId); });
|
|
119
54
|
return [2 /*return*/, newPromise];
|
|
120
55
|
}
|
|
121
56
|
return [2 /*return*/, undefined];
|
|
@@ -134,6 +69,9 @@ var ClientsQueue = /** @class */ (function () {
|
|
|
134
69
|
};
|
|
135
70
|
return ClientsQueue;
|
|
136
71
|
}());
|
|
72
|
+
var dispatchPubSubEvent = function (event, data, message) {
|
|
73
|
+
Hub.dispatch('pubsub', { event: event, data: data, message: message }, 'PubSub', AMPLIFY_SYMBOL);
|
|
74
|
+
};
|
|
137
75
|
var topicSymbol = typeof Symbol !== 'undefined' ? Symbol('topic') : '@@topic';
|
|
138
76
|
var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
139
77
|
__extends(MqttOverWSProvider, _super);
|
|
@@ -141,8 +79,26 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
141
79
|
if (options === void 0) { options = {}; }
|
|
142
80
|
var _this = _super.call(this, __assign(__assign({}, options), { clientId: options.clientId || uuid() })) || this;
|
|
143
81
|
_this._clientsQueue = new ClientsQueue();
|
|
82
|
+
_this.connectionStateMonitor = new ConnectionStateMonitor();
|
|
83
|
+
_this.reconnectionMonitor = new ReconnectionMonitor();
|
|
144
84
|
_this._topicObservers = new Map();
|
|
145
85
|
_this._clientIdObservers = new Map();
|
|
86
|
+
// Monitor the connection health state and pass changes along to Hub
|
|
87
|
+
_this.connectionStateMonitor.connectionStateObservable.subscribe(function (connectionStateChange) {
|
|
88
|
+
dispatchPubSubEvent(CONNECTION_STATE_CHANGE, {
|
|
89
|
+
provider: _this,
|
|
90
|
+
connectionState: connectionStateChange,
|
|
91
|
+
}, "Connection state is " + connectionStateChange);
|
|
92
|
+
_this.connectionState = connectionStateChange;
|
|
93
|
+
// Trigger reconnection when the connection is disrupted
|
|
94
|
+
if (connectionStateChange === ConnectionState.ConnectionDisrupted) {
|
|
95
|
+
_this.reconnectionMonitor.record(ReconnectEvent.START_RECONNECT);
|
|
96
|
+
}
|
|
97
|
+
else if (connectionStateChange !== ConnectionState.Connecting) {
|
|
98
|
+
// Trigger connected to halt reconnection attempts
|
|
99
|
+
_this.reconnectionMonitor.record(ReconnectEvent.HALT_RECONNECT);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
146
102
|
return _this;
|
|
147
103
|
}
|
|
148
104
|
Object.defineProperty(MqttOverWSProvider.prototype, "clientId", {
|
|
@@ -181,11 +137,9 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
181
137
|
return 'MqttOverWSProvider';
|
|
182
138
|
};
|
|
183
139
|
MqttOverWSProvider.prototype.onDisconnect = function (_a) {
|
|
184
|
-
var _this = this;
|
|
185
140
|
var clientId = _a.clientId, errorCode = _a.errorCode, args = __rest(_a, ["clientId", "errorCode"]);
|
|
186
141
|
if (errorCode !== 0) {
|
|
187
142
|
logger.warn(clientId, JSON.stringify(__assign({ errorCode: errorCode }, args), null, 2));
|
|
188
|
-
var topicsToDelete_1 = [];
|
|
189
143
|
if (!clientId) {
|
|
190
144
|
return;
|
|
191
145
|
}
|
|
@@ -193,35 +147,20 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
193
147
|
if (!clientIdObservers) {
|
|
194
148
|
return;
|
|
195
149
|
}
|
|
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
|
-
});
|
|
150
|
+
this.disconnect(clientId);
|
|
212
151
|
}
|
|
213
152
|
};
|
|
214
153
|
MqttOverWSProvider.prototype.newClient = function (_a) {
|
|
215
154
|
var url = _a.url, clientId = _a.clientId;
|
|
216
155
|
return __awaiter(this, void 0, void 0, function () {
|
|
217
|
-
var client;
|
|
156
|
+
var client, connected;
|
|
218
157
|
var _this = this;
|
|
219
158
|
return __generator(this, function (_b) {
|
|
220
159
|
switch (_b.label) {
|
|
221
160
|
case 0:
|
|
222
161
|
logger.debug('Creating new MQTT client', clientId);
|
|
162
|
+
this.connectionStateMonitor.record(CONNECTION_CHANGE.OPENING_CONNECTION);
|
|
223
163
|
client = new Paho.Client(url, clientId);
|
|
224
|
-
// client.trace = (args) => logger.debug(clientId, JSON.stringify(args, null, 2));
|
|
225
164
|
client.onMessageArrived = function (_a) {
|
|
226
165
|
var topic = _a.destinationName, msg = _a.payloadString;
|
|
227
166
|
_this._onMessage(topic, msg);
|
|
@@ -229,17 +168,26 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
229
168
|
client.onConnectionLost = function (_a) {
|
|
230
169
|
var errorCode = _a.errorCode, args = __rest(_a, ["errorCode"]);
|
|
231
170
|
_this.onDisconnect(__assign({ clientId: clientId, errorCode: errorCode }, args));
|
|
171
|
+
_this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);
|
|
232
172
|
};
|
|
233
173
|
return [4 /*yield*/, new Promise(function (resolve, reject) {
|
|
234
174
|
client.connect({
|
|
235
175
|
useSSL: _this.isSSLEnabled,
|
|
236
176
|
mqttVersion: 3,
|
|
237
|
-
onSuccess: function () { return resolve(
|
|
238
|
-
onFailure:
|
|
177
|
+
onSuccess: function () { return resolve(true); },
|
|
178
|
+
onFailure: function (x) {
|
|
179
|
+
if (clientId)
|
|
180
|
+
_this._clientsQueue.remove(clientId);
|
|
181
|
+
_this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);
|
|
182
|
+
resolve(false);
|
|
183
|
+
},
|
|
239
184
|
});
|
|
240
185
|
})];
|
|
241
186
|
case 1:
|
|
242
|
-
_b.sent();
|
|
187
|
+
connected = _b.sent();
|
|
188
|
+
if (connected) {
|
|
189
|
+
this.connectionStateMonitor.record(CONNECTION_CHANGE.CONNECTION_ESTABLISHED);
|
|
190
|
+
}
|
|
243
191
|
return [2 /*return*/, client];
|
|
244
192
|
}
|
|
245
193
|
});
|
|
@@ -251,9 +199,23 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
251
199
|
var _this = this;
|
|
252
200
|
return __generator(this, function (_a) {
|
|
253
201
|
switch (_a.label) {
|
|
254
|
-
case 0: return [4 /*yield*/, this.clientsQueue.get(clientId, function (clientId) {
|
|
255
|
-
|
|
256
|
-
|
|
202
|
+
case 0: return [4 /*yield*/, this.clientsQueue.get(clientId, function (clientId) { return __awaiter(_this, void 0, void 0, function () {
|
|
203
|
+
var client;
|
|
204
|
+
return __generator(this, function (_a) {
|
|
205
|
+
switch (_a.label) {
|
|
206
|
+
case 0: return [4 /*yield*/, this.newClient(__assign(__assign({}, options), { clientId: clientId }))];
|
|
207
|
+
case 1:
|
|
208
|
+
client = _a.sent();
|
|
209
|
+
if (client) {
|
|
210
|
+
// Once connected, subscribe to all topics registered observers
|
|
211
|
+
this._topicObservers.forEach(function (_value, key) {
|
|
212
|
+
client.subscribe(key);
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
return [2 /*return*/, client];
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
}); })];
|
|
257
219
|
case 1: return [2 /*return*/, _a.sent()];
|
|
258
220
|
}
|
|
259
221
|
});
|
|
@@ -271,6 +233,7 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
271
233
|
client.disconnect();
|
|
272
234
|
}
|
|
273
235
|
this.clientsQueue.remove(clientId);
|
|
236
|
+
this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSED);
|
|
274
237
|
return [2 /*return*/];
|
|
275
238
|
}
|
|
276
239
|
});
|
|
@@ -278,20 +241,22 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
278
241
|
};
|
|
279
242
|
MqttOverWSProvider.prototype.publish = function (topics, msg) {
|
|
280
243
|
return __awaiter(this, void 0, void 0, function () {
|
|
281
|
-
var targetTopics, message,
|
|
244
|
+
var targetTopics, message, client;
|
|
282
245
|
return __generator(this, function (_a) {
|
|
283
246
|
switch (_a.label) {
|
|
284
247
|
case 0:
|
|
285
248
|
targetTopics = [].concat(topics);
|
|
286
249
|
message = JSON.stringify(msg);
|
|
287
|
-
return [4 /*yield*/, this.
|
|
250
|
+
return [4 /*yield*/, this.clientsQueue.get(this.clientId)];
|
|
288
251
|
case 1:
|
|
289
|
-
url = _a.sent();
|
|
290
|
-
return [4 /*yield*/, this.connect(this.clientId, { url: url })];
|
|
291
|
-
case 2:
|
|
292
252
|
client = _a.sent();
|
|
293
|
-
|
|
294
|
-
|
|
253
|
+
if (client) {
|
|
254
|
+
logger.debug('Publishing to topic(s)', targetTopics.join(','), message);
|
|
255
|
+
targetTopics.forEach(function (topic) { return client.send(topic, message); });
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
logger.debug('Publishing to topic(s) failed', targetTopics.join(','), message);
|
|
259
|
+
}
|
|
295
260
|
return [2 /*return*/];
|
|
296
261
|
}
|
|
297
262
|
});
|
|
@@ -322,6 +287,7 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
322
287
|
if (options === void 0) { options = {}; }
|
|
323
288
|
var targetTopics = [].concat(topics);
|
|
324
289
|
logger.debug('Subscribing to topic(s)', targetTopics.join(','));
|
|
290
|
+
var reconnectSubscription;
|
|
325
291
|
return new Observable(function (observer) {
|
|
326
292
|
targetTopics.forEach(function (topic) {
|
|
327
293
|
// this._topicObservers is used to notify the observers according to the topic received on the message
|
|
@@ -332,8 +298,6 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
332
298
|
}
|
|
333
299
|
observersForTopic.add(observer);
|
|
334
300
|
});
|
|
335
|
-
// @ts-ignore
|
|
336
|
-
var client;
|
|
337
301
|
var _a = options.clientId, clientId = _a === void 0 ? _this.clientId : _a;
|
|
338
302
|
// this._clientIdObservers is used to close observers when client gets disconnected
|
|
339
303
|
var observersForClientId = _this._clientIdObservers.get(clientId);
|
|
@@ -343,64 +307,95 @@ var MqttOverWSProvider = /** @class */ (function (_super) {
|
|
|
343
307
|
observersForClientId.add(observer);
|
|
344
308
|
_this._clientIdObservers.set(clientId, observersForClientId);
|
|
345
309
|
(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
346
|
-
var
|
|
347
|
-
|
|
348
|
-
|
|
310
|
+
var getClient;
|
|
311
|
+
var _this = this;
|
|
312
|
+
return __generator(this, function (_a) {
|
|
313
|
+
switch (_a.label) {
|
|
349
314
|
case 0:
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
315
|
+
getClient = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
316
|
+
var _a, url, _b, client_1, e_1;
|
|
317
|
+
return __generator(this, function (_c) {
|
|
318
|
+
switch (_c.label) {
|
|
319
|
+
case 0:
|
|
320
|
+
_c.trys.push([0, 5, , 6]);
|
|
321
|
+
_a = options.url;
|
|
322
|
+
if (!(_a === void 0)) return [3 /*break*/, 2];
|
|
323
|
+
return [4 /*yield*/, this.endpoint];
|
|
324
|
+
case 1:
|
|
325
|
+
_b = _c.sent();
|
|
326
|
+
return [3 /*break*/, 3];
|
|
327
|
+
case 2:
|
|
328
|
+
_b = _a;
|
|
329
|
+
_c.label = 3;
|
|
330
|
+
case 3:
|
|
331
|
+
url = _b;
|
|
332
|
+
return [4 /*yield*/, this.connect(clientId, { url: url })];
|
|
333
|
+
case 4:
|
|
334
|
+
client_1 = _c.sent();
|
|
335
|
+
if (client_1 !== undefined) {
|
|
336
|
+
targetTopics.forEach(function (topic) {
|
|
337
|
+
client_1.subscribe(topic);
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
return [3 /*break*/, 6];
|
|
341
|
+
case 5:
|
|
342
|
+
e_1 = _c.sent();
|
|
343
|
+
logger.debug('Error forming connection', e_1);
|
|
344
|
+
return [3 /*break*/, 6];
|
|
345
|
+
case 6: return [2 /*return*/];
|
|
346
|
+
}
|
|
347
|
+
});
|
|
348
|
+
}); };
|
|
349
|
+
// Establish the initial connection
|
|
350
|
+
return [4 /*yield*/, getClient()];
|
|
353
351
|
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);
|
|
352
|
+
// Establish the initial connection
|
|
353
|
+
_a.sent();
|
|
354
|
+
// Add an observable to the reconnection list to manage reconnection for this subscription
|
|
355
|
+
reconnectSubscription = new Observable(function (observer) {
|
|
356
|
+
_this.reconnectionMonitor.addObserver(observer);
|
|
357
|
+
}).subscribe(function () {
|
|
358
|
+
getClient();
|
|
369
359
|
});
|
|
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*/];
|
|
360
|
+
return [2 /*return*/];
|
|
376
361
|
}
|
|
377
362
|
});
|
|
378
363
|
}); })();
|
|
379
|
-
return function () {
|
|
364
|
+
return function () { return __awaiter(_this, void 0, void 0, function () {
|
|
365
|
+
var client;
|
|
366
|
+
var _this = this;
|
|
380
367
|
var _a, _b;
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
368
|
+
return __generator(this, function (_c) {
|
|
369
|
+
switch (_c.label) {
|
|
370
|
+
case 0: return [4 /*yield*/, this.clientsQueue.get(clientId)];
|
|
371
|
+
case 1:
|
|
372
|
+
client = _c.sent();
|
|
373
|
+
reconnectSubscription === null || reconnectSubscription === void 0 ? void 0 : reconnectSubscription.unsubscribe();
|
|
374
|
+
if (client) {
|
|
375
|
+
(_a = this._clientIdObservers.get(clientId)) === null || _a === void 0 ? void 0 : _a.delete(observer);
|
|
376
|
+
// No more observers per client => client not needed anymore
|
|
377
|
+
if (((_b = this._clientIdObservers.get(clientId)) === null || _b === void 0 ? void 0 : _b.size) === 0) {
|
|
378
|
+
this.disconnect(clientId);
|
|
379
|
+
this.connectionStateMonitor.record(CONNECTION_CHANGE.CLOSING_CONNECTION);
|
|
380
|
+
this._clientIdObservers.delete(clientId);
|
|
381
|
+
}
|
|
382
|
+
targetTopics.forEach(function (topic) {
|
|
383
|
+
var observersForTopic = _this._topicObservers.get(topic) ||
|
|
384
|
+
new Set();
|
|
385
|
+
observersForTopic.delete(observer);
|
|
386
|
+
// if no observers exists for the topic, topic should be removed
|
|
387
|
+
if (observersForTopic.size === 0) {
|
|
388
|
+
_this._topicObservers.delete(topic);
|
|
389
|
+
if (client.isConnected()) {
|
|
390
|
+
client.unsubscribe(topic);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
});
|
|
398
394
|
}
|
|
399
|
-
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
};
|
|
395
|
+
return [2 /*return*/, null];
|
|
396
|
+
}
|
|
397
|
+
});
|
|
398
|
+
}); };
|
|
404
399
|
});
|
|
405
400
|
};
|
|
406
401
|
return MqttOverWSProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MqttOverWSProvider.js","sourceRoot":"","sources":["../../src/Providers/MqttOverWSProvider.ts"],"names":[],"mappings":"
|
|
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,14 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
1
|
+
import { __assign } from "tslib";
|
|
12
2
|
import { ConsoleLogger as Logger } from '@aws-amplify/core';
|
|
13
3
|
var logger = new Logger('AbstractPubSubProvider');
|
|
14
4
|
var AbstractPubSubProvider = /** @class */ (function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PubSubProvider.js","sourceRoot":"","sources":["../../src/Providers/PubSubProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PubSubProvider.js","sourceRoot":"","sources":["../../src/Providers/PubSubProvider.ts"],"names":[],"mappings":";AAcA,OAAO,EAAE,aAAa,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE5D,IAAM,MAAM,GAAG,IAAI,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAEpD;IAGC,gCAAY,OAA6B;QAA7B,wBAAA,EAAA,YAA6B;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,0CAAS,GAAT,UAAU,MAA4B;QAA5B,uBAAA,EAAA,WAA4B;QACrC,IAAI,CAAC,OAAO,yBAAQ,MAAM,GAAK,IAAI,CAAC,OAAO,CAAE,CAAC;QAE9C,MAAM,CAAC,KAAK,CAAC,eAAa,IAAI,CAAC,eAAe,EAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAElE,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,4CAAW,GAAX;QACC,OAAO,QAAQ,CAAC;IACjB,CAAC;IAID,sBAAc,2CAAO;aAArB;YACC,oBAAY,IAAI,CAAC,OAAO,EAAG;QAC5B,CAAC;;;OAAA;IAcF,6BAAC;AAAD,CAAC,AArCD,IAqCC"}
|
|
@@ -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/PubSub.js
CHANGED
|
@@ -1,39 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
-
function step(op) {
|
|
15
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
-
while (_) try {
|
|
17
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
-
switch (op[0]) {
|
|
20
|
-
case 0: case 1: t = op; break;
|
|
21
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
-
default:
|
|
25
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
-
if (t[2]) _.ops.pop();
|
|
30
|
-
_.trys.pop(); continue;
|
|
31
|
-
}
|
|
32
|
-
op = body.call(thisArg, _);
|
|
33
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
-
}
|
|
36
|
-
};
|
|
1
|
+
import { __awaiter, __generator } from "tslib";
|
|
37
2
|
/*
|
|
38
3
|
* Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
39
4
|
*
|