quidproquo-web 0.0.129 → 0.0.130
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/lib/commonjs/index.js +0 -1
- package/lib/commonjs/services/WebsocketService.d.ts +5 -1
- package/lib/commonjs/services/WebsocketService.js +13 -14
- package/lib/commonjs/services/index.js +0 -1
- package/package.json +1 -1
- package/lib/commonjs/index.js.map +0 -1
- package/lib/commonjs/services/WebsocketService.js.map +0 -1
- package/lib/commonjs/services/index.js.map +0 -1
package/lib/commonjs/index.js
CHANGED
|
@@ -7,16 +7,19 @@ export declare enum WebsocketServiceEvent {
|
|
|
7
7
|
export type SubscriptionHandle = {
|
|
8
8
|
type: WebsocketServiceEvent;
|
|
9
9
|
};
|
|
10
|
+
type WebsocketSendPayload = string | ArrayBufferLike | Blob | ArrayBufferView;
|
|
10
11
|
export type WebSocketServiceSubscriptionFunction = (websocketService: WebsocketService, data?: string) => any;
|
|
11
12
|
export declare class WebsocketService {
|
|
12
13
|
private url;
|
|
13
14
|
private socket;
|
|
14
15
|
private eventListeners;
|
|
15
16
|
private isDestroyed;
|
|
17
|
+
private pendingMessages;
|
|
16
18
|
private subscriptions;
|
|
17
19
|
constructor(url: string);
|
|
18
20
|
destroy(): void;
|
|
19
21
|
close(): void;
|
|
22
|
+
isConnected(): boolean;
|
|
20
23
|
subscribe(subscriptionType: WebsocketServiceEvent, callback: WebSocketServiceSubscriptionFunction): SubscriptionHandle;
|
|
21
24
|
unsubscribe(subscriptionHandle: SubscriptionHandle): boolean;
|
|
22
25
|
unsubscribeAll(): void;
|
|
@@ -29,5 +32,6 @@ export declare class WebsocketService {
|
|
|
29
32
|
private onMessage;
|
|
30
33
|
private onError;
|
|
31
34
|
private notifySubscribers;
|
|
32
|
-
send(data:
|
|
35
|
+
send(data: WebsocketSendPayload): void;
|
|
33
36
|
}
|
|
37
|
+
export {};
|
|
@@ -14,6 +14,7 @@ class WebsocketService {
|
|
|
14
14
|
this.socket = null;
|
|
15
15
|
this.eventListeners = {};
|
|
16
16
|
this.isDestroyed = false;
|
|
17
|
+
this.pendingMessages = [];
|
|
17
18
|
this.subscriptions = {
|
|
18
19
|
[WebsocketServiceEvent.OPEN]: new Map(),
|
|
19
20
|
[WebsocketServiceEvent.CLOSE]: new Map(),
|
|
@@ -33,21 +34,15 @@ class WebsocketService {
|
|
|
33
34
|
var _a;
|
|
34
35
|
(_a = this.socket) === null || _a === void 0 ? void 0 : _a.close();
|
|
35
36
|
}
|
|
36
|
-
|
|
37
|
+
isConnected() {
|
|
37
38
|
var _a;
|
|
39
|
+
return ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.OPEN;
|
|
40
|
+
}
|
|
41
|
+
subscribe(subscriptionType, callback) {
|
|
38
42
|
const subscriptionHandle = {
|
|
39
43
|
type: subscriptionType
|
|
40
44
|
};
|
|
41
45
|
this.subscriptions[subscriptionType].set(subscriptionHandle, callback);
|
|
42
|
-
// If we are already open, then call the callback immediately
|
|
43
|
-
if (subscriptionType === WebsocketServiceEvent.OPEN && ((_a = this.socket) === null || _a === void 0 ? void 0 : _a.readyState) === WebSocket.OPEN) {
|
|
44
|
-
try {
|
|
45
|
-
callback(this);
|
|
46
|
-
}
|
|
47
|
-
catch (e) {
|
|
48
|
-
console.error('Error in Websocket onConnect callback: ', e);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
46
|
return subscriptionHandle;
|
|
52
47
|
}
|
|
53
48
|
unsubscribe(subscriptionHandle) {
|
|
@@ -82,7 +77,6 @@ class WebsocketService {
|
|
|
82
77
|
for (const event in this.eventListeners) {
|
|
83
78
|
if (this.eventListeners.hasOwnProperty(event)) {
|
|
84
79
|
for (const listener of this.eventListeners[event]) {
|
|
85
|
-
console.log('remove', event);
|
|
86
80
|
this.socket.removeEventListener(event, listener);
|
|
87
81
|
}
|
|
88
82
|
}
|
|
@@ -101,8 +95,15 @@ class WebsocketService {
|
|
|
101
95
|
onConnect() {
|
|
102
96
|
console.log(`WebSocket connected: ${this.url}`);
|
|
103
97
|
this.notifySubscribers(this.subscriptions.open);
|
|
98
|
+
// Send any pending messages once we are connected
|
|
99
|
+
const messages = this.pendingMessages;
|
|
100
|
+
this.pendingMessages = [];
|
|
101
|
+
messages.forEach((message) => {
|
|
102
|
+
this.send(message);
|
|
103
|
+
});
|
|
104
104
|
}
|
|
105
105
|
onClose() {
|
|
106
|
+
console.log(`Websocket disconnected`);
|
|
106
107
|
this.removeAllEventListeners();
|
|
107
108
|
this.reconnectIfNotDestroyed();
|
|
108
109
|
this.notifySubscribers(this.subscriptions.close);
|
|
@@ -119,14 +120,12 @@ class WebsocketService {
|
|
|
119
120
|
});
|
|
120
121
|
}
|
|
121
122
|
send(data) {
|
|
122
|
-
var _a;
|
|
123
123
|
if (this.socket && this.socket.readyState === WebSocket.OPEN) {
|
|
124
124
|
this.socket.send(data);
|
|
125
125
|
}
|
|
126
126
|
else {
|
|
127
|
-
|
|
127
|
+
this.pendingMessages.push(data);
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
131
|
exports.WebsocketService = WebsocketService;
|
|
132
|
-
//# sourceMappingURL=WebsocketService.js.map
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WebsocketService.js","sourceRoot":"","sources":["../../../src/services/WebsocketService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAkC"}
|