websocket-ts 2.3.0 → 3.0.0
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/README.md +134 -9
- package/dist/cjs/{src/backoff → backoff}/backoff.d.ts +6 -3
- package/dist/{esm/src → cjs}/backoff/backoff.d.ts.map +1 -1
- package/dist/{esm/src → cjs}/backoff/backoff.js.map +1 -1
- package/dist/cjs/{src/backoff → backoff}/constantbackoff.d.ts +2 -2
- package/dist/cjs/backoff/constantbackoff.d.ts.map +1 -0
- package/dist/cjs/backoff/constantbackoff.js +34 -0
- package/dist/cjs/backoff/constantbackoff.js.map +1 -0
- package/dist/{esm/src → cjs}/backoff/exponentialbackoff.d.ts +2 -2
- package/dist/cjs/backoff/exponentialbackoff.d.ts.map +1 -0
- package/dist/cjs/{src/backoff → backoff}/exponentialbackoff.js +19 -27
- package/dist/cjs/backoff/exponentialbackoff.js.map +1 -0
- package/dist/{esm/src → cjs}/backoff/linearbackoff.d.ts +1 -1
- package/dist/cjs/backoff/linearbackoff.d.ts.map +1 -0
- package/dist/cjs/{src/backoff → backoff}/linearbackoff.js +23 -31
- package/dist/cjs/backoff/linearbackoff.js.map +1 -0
- package/dist/cjs/index.d.ts +14 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +20 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/{esm/src → cjs}/queue/array_queue.d.ts +1 -1
- package/dist/cjs/queue/array_queue.d.ts.map +1 -0
- package/dist/cjs/{src/queue → queue}/array_queue.js +17 -18
- package/dist/cjs/queue/array_queue.js.map +1 -0
- package/dist/cjs/queue/queue.d.ts.map +1 -0
- package/dist/cjs/{src/queue → queue}/queue.js.map +1 -1
- package/dist/cjs/{src/queue → queue}/ring_queue.d.ts +1 -1
- package/dist/cjs/queue/ring_queue.d.ts.map +1 -0
- package/dist/cjs/{src/queue → queue}/ring_queue.js +25 -22
- package/dist/cjs/queue/ring_queue.js.map +1 -0
- package/dist/cjs/{src/websocket.d.ts → websocket.d.ts} +75 -17
- package/dist/cjs/websocket.d.ts.map +1 -0
- package/dist/cjs/websocket.js +588 -0
- package/dist/cjs/websocket.js.map +1 -0
- package/dist/cjs/{src/websocket_buffer.d.ts → websocket_buffer.d.ts} +1 -1
- package/dist/cjs/websocket_buffer.d.ts.map +1 -0
- package/dist/cjs/websocket_buffer.js.map +1 -0
- package/dist/{esm/src → cjs}/websocket_builder.d.ts +14 -5
- package/dist/cjs/{src/websocket_builder.d.ts.map → websocket_builder.d.ts.map} +1 -1
- package/dist/cjs/websocket_builder.js +236 -0
- package/dist/cjs/websocket_builder.js.map +1 -0
- package/dist/{esm/src → cjs}/websocket_event.d.ts +20 -5
- package/dist/cjs/websocket_event.d.ts.map +1 -0
- package/dist/cjs/{src/websocket_event.js → websocket_event.js} +7 -1
- package/dist/cjs/websocket_event.js.map +1 -0
- package/dist/{esm/src → cjs}/websocket_options.d.ts +6 -5
- package/dist/cjs/websocket_options.d.ts.map +1 -0
- package/dist/cjs/websocket_options.js.map +1 -0
- package/dist/{esm/src → cjs}/websocket_retry_options.d.ts +3 -2
- package/dist/cjs/websocket_retry_options.d.ts.map +1 -0
- package/dist/cjs/websocket_retry_options.js.map +1 -0
- package/dist/esm/{src/backoff → backoff}/backoff.d.ts +6 -3
- package/dist/{cjs/src → esm}/backoff/backoff.d.ts.map +1 -1
- package/dist/{cjs/src → esm}/backoff/backoff.js.map +1 -1
- package/dist/esm/{src/backoff → backoff}/constantbackoff.d.ts +2 -2
- package/dist/esm/backoff/constantbackoff.d.ts.map +1 -0
- package/dist/esm/{src/backoff → backoff}/constantbackoff.js +3 -3
- package/dist/esm/backoff/constantbackoff.js.map +1 -0
- package/dist/{cjs/src → esm}/backoff/exponentialbackoff.d.ts +2 -2
- package/dist/esm/backoff/exponentialbackoff.d.ts.map +1 -0
- package/dist/esm/{src/backoff → backoff}/exponentialbackoff.js +6 -5
- package/dist/esm/backoff/exponentialbackoff.js.map +1 -0
- package/dist/{cjs/src → esm}/backoff/linearbackoff.d.ts +1 -1
- package/dist/esm/backoff/linearbackoff.d.ts.map +1 -0
- package/dist/esm/{src/backoff → backoff}/linearbackoff.js +8 -7
- package/dist/esm/backoff/linearbackoff.js.map +1 -0
- package/dist/esm/index.d.ts +14 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/{cjs/src → esm}/queue/array_queue.d.ts +1 -1
- package/dist/esm/queue/array_queue.d.ts.map +1 -0
- package/dist/esm/queue/array_queue.js.map +1 -0
- package/dist/esm/queue/queue.d.ts.map +1 -0
- package/dist/esm/{src/queue → queue}/queue.js.map +1 -1
- package/dist/esm/{src/queue → queue}/ring_queue.d.ts +1 -1
- package/dist/esm/queue/ring_queue.d.ts.map +1 -0
- package/dist/esm/{src/queue → queue}/ring_queue.js +7 -3
- package/dist/esm/queue/ring_queue.js.map +1 -0
- package/dist/esm/{src/websocket.d.ts → websocket.d.ts} +75 -17
- package/dist/esm/websocket.d.ts.map +1 -0
- package/dist/esm/websocket.js +584 -0
- package/dist/esm/websocket.js.map +1 -0
- package/dist/esm/{src/websocket_buffer.d.ts → websocket_buffer.d.ts} +1 -1
- package/dist/esm/websocket_buffer.d.ts.map +1 -0
- package/dist/esm/websocket_buffer.js.map +1 -0
- package/dist/{cjs/src → esm}/websocket_builder.d.ts +14 -5
- package/dist/esm/{src/websocket_builder.d.ts.map → websocket_builder.d.ts.map} +1 -1
- package/dist/esm/{src/websocket_builder.js → websocket_builder.js} +36 -17
- package/dist/esm/websocket_builder.js.map +1 -0
- package/dist/{cjs/src → esm}/websocket_event.d.ts +20 -5
- package/dist/esm/websocket_event.d.ts.map +1 -0
- package/dist/esm/{src/websocket_event.js → websocket_event.js} +7 -1
- package/dist/esm/websocket_event.js.map +1 -0
- package/dist/{cjs/src → esm}/websocket_options.d.ts +6 -5
- package/dist/esm/websocket_options.d.ts.map +1 -0
- package/dist/esm/websocket_options.js.map +1 -0
- package/dist/{cjs/src → esm}/websocket_retry_options.d.ts +3 -2
- package/dist/esm/websocket_retry_options.d.ts.map +1 -0
- package/dist/esm/websocket_retry_options.js.map +1 -0
- package/package.json +35 -16
- package/src/backoff/backoff.ts +6 -3
- package/src/backoff/constantbackoff.ts +4 -4
- package/src/backoff/exponentialbackoff.ts +7 -6
- package/src/backoff/linearbackoff.ts +9 -8
- package/src/index.ts +14 -13
- package/src/queue/array_queue.ts +1 -1
- package/src/queue/ring_queue.ts +12 -8
- package/src/websocket.ts +333 -79
- package/src/websocket_buffer.ts +1 -3
- package/src/websocket_builder.ts +24 -13
- package/src/websocket_event.ts +25 -6
- package/src/websocket_options.ts +6 -5
- package/src/websocket_retry_options.ts +3 -2
- package/dist/cjs/src/backoff/constantbackoff.d.ts.map +0 -1
- package/dist/cjs/src/backoff/constantbackoff.js +0 -43
- package/dist/cjs/src/backoff/constantbackoff.js.map +0 -1
- package/dist/cjs/src/backoff/exponentialbackoff.d.ts.map +0 -1
- package/dist/cjs/src/backoff/exponentialbackoff.js.map +0 -1
- package/dist/cjs/src/backoff/linearbackoff.d.ts.map +0 -1
- package/dist/cjs/src/backoff/linearbackoff.js.map +0 -1
- package/dist/cjs/src/index.d.ts +0 -14
- package/dist/cjs/src/index.d.ts.map +0 -1
- package/dist/cjs/src/index.js +0 -20
- package/dist/cjs/src/index.js.map +0 -1
- package/dist/cjs/src/queue/array_queue.d.ts.map +0 -1
- package/dist/cjs/src/queue/array_queue.js.map +0 -1
- package/dist/cjs/src/queue/queue.d.ts.map +0 -1
- package/dist/cjs/src/queue/ring_queue.d.ts.map +0 -1
- package/dist/cjs/src/queue/ring_queue.js.map +0 -1
- package/dist/cjs/src/websocket.d.ts.map +0 -1
- package/dist/cjs/src/websocket.js +0 -439
- package/dist/cjs/src/websocket.js.map +0 -1
- package/dist/cjs/src/websocket_buffer.d.ts.map +0 -1
- package/dist/cjs/src/websocket_buffer.js.map +0 -1
- package/dist/cjs/src/websocket_builder.js +0 -263
- package/dist/cjs/src/websocket_builder.js.map +0 -1
- package/dist/cjs/src/websocket_event.d.ts.map +0 -1
- package/dist/cjs/src/websocket_event.js.map +0 -1
- package/dist/cjs/src/websocket_options.d.ts.map +0 -1
- package/dist/cjs/src/websocket_options.js.map +0 -1
- package/dist/cjs/src/websocket_retry_options.d.ts.map +0 -1
- package/dist/cjs/src/websocket_retry_options.js.map +0 -1
- package/dist/esm/src/backoff/constantbackoff.d.ts.map +0 -1
- package/dist/esm/src/backoff/constantbackoff.js.map +0 -1
- package/dist/esm/src/backoff/exponentialbackoff.d.ts.map +0 -1
- package/dist/esm/src/backoff/exponentialbackoff.js.map +0 -1
- package/dist/esm/src/backoff/linearbackoff.d.ts.map +0 -1
- package/dist/esm/src/backoff/linearbackoff.js.map +0 -1
- package/dist/esm/src/index.d.ts +0 -14
- package/dist/esm/src/index.d.ts.map +0 -1
- package/dist/esm/src/index.js +0 -9
- package/dist/esm/src/index.js.map +0 -1
- package/dist/esm/src/queue/array_queue.d.ts.map +0 -1
- package/dist/esm/src/queue/array_queue.js.map +0 -1
- package/dist/esm/src/queue/queue.d.ts.map +0 -1
- package/dist/esm/src/queue/ring_queue.d.ts.map +0 -1
- package/dist/esm/src/queue/ring_queue.js.map +0 -1
- package/dist/esm/src/websocket.d.ts.map +0 -1
- package/dist/esm/src/websocket.js +0 -361
- package/dist/esm/src/websocket.js.map +0 -1
- package/dist/esm/src/websocket_buffer.d.ts.map +0 -1
- package/dist/esm/src/websocket_buffer.js.map +0 -1
- package/dist/esm/src/websocket_builder.js.map +0 -1
- package/dist/esm/src/websocket_event.d.ts.map +0 -1
- package/dist/esm/src/websocket_event.js.map +0 -1
- package/dist/esm/src/websocket_options.d.ts.map +0 -1
- package/dist/esm/src/websocket_options.js.map +0 -1
- package/dist/esm/src/websocket_retry_options.d.ts.map +0 -1
- package/dist/esm/src/websocket_retry_options.js.map +0 -1
- package/eslint.config.mjs +0 -43
- package/tsconfig.cjs.json +0 -74
- package/tsconfig.esm.json +0 -74
- /package/dist/cjs/{src/backoff → backoff}/backoff.js +0 -0
- /package/dist/cjs/{src/queue → queue}/queue.d.ts +0 -0
- /package/dist/cjs/{src/queue → queue}/queue.js +0 -0
- /package/dist/cjs/{src/websocket_buffer.js → websocket_buffer.js} +0 -0
- /package/dist/cjs/{src/websocket_options.js → websocket_options.js} +0 -0
- /package/dist/cjs/{src/websocket_retry_options.js → websocket_retry_options.js} +0 -0
- /package/dist/esm/{src/backoff → backoff}/backoff.js +0 -0
- /package/dist/esm/{src/queue → queue}/array_queue.js +0 -0
- /package/dist/esm/{src/queue → queue}/queue.d.ts +0 -0
- /package/dist/esm/{src/queue → queue}/queue.js +0 -0
- /package/dist/esm/{src/websocket_buffer.js → websocket_buffer.js} +0 -0
- /package/dist/esm/{src/websocket_options.js → websocket_options.js} +0 -0
- /package/dist/esm/{src/websocket_retry_options.js → websocket_retry_options.js} +0 -0
|
@@ -1,439 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
-
if (ar || !(i in from)) {
|
|
5
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
-
ar[i] = from[i];
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.Websocket = void 0;
|
|
13
|
-
var websocket_event_1 = require("./websocket_event");
|
|
14
|
-
/**
|
|
15
|
-
* A websocket wrapper that can be configured to reconnect automatically and buffer messages when the websocket is not connected.
|
|
16
|
-
*/
|
|
17
|
-
var Websocket = /** @class */ (function () {
|
|
18
|
-
/**
|
|
19
|
-
* Creates a new websocket.
|
|
20
|
-
*
|
|
21
|
-
* @param url to connect to, or a function that returns a URL.
|
|
22
|
-
* @param protocols optional protocols to use.
|
|
23
|
-
* @param options optional options to use.
|
|
24
|
-
*/
|
|
25
|
-
function Websocket(url, protocols, options) {
|
|
26
|
-
var _this = this;
|
|
27
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
28
|
-
this._closedByUser = false; // whether the websocket was closed by the user
|
|
29
|
-
/**
|
|
30
|
-
* Handles the 'open' event of the browser-native websocket.
|
|
31
|
-
* @param event to handle.
|
|
32
|
-
*/
|
|
33
|
-
this.handleOpenEvent = function (event) {
|
|
34
|
-
return _this.handleEvent(websocket_event_1.WebsocketEvent.open, event);
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* Handles the 'error' event of the browser-native websocket.
|
|
38
|
-
* @param event to handle.
|
|
39
|
-
*/
|
|
40
|
-
this.handleErrorEvent = function (event) {
|
|
41
|
-
return _this.handleEvent(websocket_event_1.WebsocketEvent.error, event);
|
|
42
|
-
};
|
|
43
|
-
/**
|
|
44
|
-
* Handles the 'close' event of the browser-native websocket.
|
|
45
|
-
* @param event to handle.
|
|
46
|
-
*/
|
|
47
|
-
this.handleCloseEvent = function (event) {
|
|
48
|
-
return _this.handleEvent(websocket_event_1.WebsocketEvent.close, event);
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* Handles the 'message' event of the browser-native websocket.
|
|
52
|
-
* @param event to handle.
|
|
53
|
-
*/
|
|
54
|
-
this.handleMessageEvent = function (event) {
|
|
55
|
-
return _this.handleEvent(websocket_event_1.WebsocketEvent.message, event);
|
|
56
|
-
};
|
|
57
|
-
this._urlProvider = url;
|
|
58
|
-
this._protocols = protocols;
|
|
59
|
-
// make a copy of the options to prevent the user from changing them
|
|
60
|
-
this._options = {
|
|
61
|
-
buffer: options === null || options === void 0 ? void 0 : options.buffer,
|
|
62
|
-
retry: {
|
|
63
|
-
maxRetries: (_a = options === null || options === void 0 ? void 0 : options.retry) === null || _a === void 0 ? void 0 : _a.maxRetries,
|
|
64
|
-
instantReconnect: (_b = options === null || options === void 0 ? void 0 : options.retry) === null || _b === void 0 ? void 0 : _b.instantReconnect,
|
|
65
|
-
backoff: (_c = options === null || options === void 0 ? void 0 : options.retry) === null || _c === void 0 ? void 0 : _c.backoff,
|
|
66
|
-
},
|
|
67
|
-
listeners: {
|
|
68
|
-
open: __spreadArray([], ((_e = (_d = options === null || options === void 0 ? void 0 : options.listeners) === null || _d === void 0 ? void 0 : _d.open) !== null && _e !== void 0 ? _e : []), true),
|
|
69
|
-
close: __spreadArray([], ((_g = (_f = options === null || options === void 0 ? void 0 : options.listeners) === null || _f === void 0 ? void 0 : _f.close) !== null && _g !== void 0 ? _g : []), true),
|
|
70
|
-
error: __spreadArray([], ((_j = (_h = options === null || options === void 0 ? void 0 : options.listeners) === null || _h === void 0 ? void 0 : _h.error) !== null && _j !== void 0 ? _j : []), true),
|
|
71
|
-
message: __spreadArray([], ((_l = (_k = options === null || options === void 0 ? void 0 : options.listeners) === null || _k === void 0 ? void 0 : _k.message) !== null && _l !== void 0 ? _l : []), true),
|
|
72
|
-
retry: __spreadArray([], ((_o = (_m = options === null || options === void 0 ? void 0 : options.listeners) === null || _m === void 0 ? void 0 : _m.retry) !== null && _o !== void 0 ? _o : []), true),
|
|
73
|
-
reconnect: __spreadArray([], ((_q = (_p = options === null || options === void 0 ? void 0 : options.listeners) === null || _p === void 0 ? void 0 : _p.reconnect) !== null && _q !== void 0 ? _q : []), true),
|
|
74
|
-
},
|
|
75
|
-
};
|
|
76
|
-
this._underlyingWebsocket = this.tryConnect();
|
|
77
|
-
}
|
|
78
|
-
Object.defineProperty(Websocket.prototype, "url", {
|
|
79
|
-
/**
|
|
80
|
-
* Getter for the url.
|
|
81
|
-
*
|
|
82
|
-
* @return the url.
|
|
83
|
-
*/
|
|
84
|
-
get: function () {
|
|
85
|
-
return this._url;
|
|
86
|
-
},
|
|
87
|
-
enumerable: false,
|
|
88
|
-
configurable: true
|
|
89
|
-
});
|
|
90
|
-
Object.defineProperty(Websocket.prototype, "protocols", {
|
|
91
|
-
/**
|
|
92
|
-
* Getter for the protocols.
|
|
93
|
-
*
|
|
94
|
-
* @return the protocols, or undefined if none were provided.
|
|
95
|
-
*/
|
|
96
|
-
get: function () {
|
|
97
|
-
return this._protocols;
|
|
98
|
-
},
|
|
99
|
-
enumerable: false,
|
|
100
|
-
configurable: true
|
|
101
|
-
});
|
|
102
|
-
Object.defineProperty(Websocket.prototype, "buffer", {
|
|
103
|
-
/**
|
|
104
|
-
* Getter for the buffer.
|
|
105
|
-
*
|
|
106
|
-
* @return the buffer, or undefined if none was provided.
|
|
107
|
-
*/
|
|
108
|
-
get: function () {
|
|
109
|
-
return this._options.buffer;
|
|
110
|
-
},
|
|
111
|
-
enumerable: false,
|
|
112
|
-
configurable: true
|
|
113
|
-
});
|
|
114
|
-
Object.defineProperty(Websocket.prototype, "maxRetries", {
|
|
115
|
-
/**
|
|
116
|
-
* Getter for the maxRetries.
|
|
117
|
-
*
|
|
118
|
-
* @return the maxRetries, or undefined if none was provided (no limit).
|
|
119
|
-
*/
|
|
120
|
-
get: function () {
|
|
121
|
-
return this._options.retry.maxRetries;
|
|
122
|
-
},
|
|
123
|
-
enumerable: false,
|
|
124
|
-
configurable: true
|
|
125
|
-
});
|
|
126
|
-
Object.defineProperty(Websocket.prototype, "instantReconnect", {
|
|
127
|
-
/**
|
|
128
|
-
* Getter for the instantReconnect.
|
|
129
|
-
*
|
|
130
|
-
* @return the instantReconnect, or undefined if none was provided.
|
|
131
|
-
*/
|
|
132
|
-
get: function () {
|
|
133
|
-
return this._options.retry.instantReconnect;
|
|
134
|
-
},
|
|
135
|
-
enumerable: false,
|
|
136
|
-
configurable: true
|
|
137
|
-
});
|
|
138
|
-
Object.defineProperty(Websocket.prototype, "backoff", {
|
|
139
|
-
/**
|
|
140
|
-
* Getter for the backoff.
|
|
141
|
-
*
|
|
142
|
-
* @return the backoff, or undefined if none was provided.
|
|
143
|
-
*/
|
|
144
|
-
get: function () {
|
|
145
|
-
return this._options.retry.backoff;
|
|
146
|
-
},
|
|
147
|
-
enumerable: false,
|
|
148
|
-
configurable: true
|
|
149
|
-
});
|
|
150
|
-
Object.defineProperty(Websocket.prototype, "closedByUser", {
|
|
151
|
-
/**
|
|
152
|
-
* Whether the websocket was closed by the user. A websocket is closed by the user by calling close().
|
|
153
|
-
*
|
|
154
|
-
* @return true if the websocket was closed by the user, false otherwise.
|
|
155
|
-
*/
|
|
156
|
-
get: function () {
|
|
157
|
-
return this._closedByUser;
|
|
158
|
-
},
|
|
159
|
-
enumerable: false,
|
|
160
|
-
configurable: true
|
|
161
|
-
});
|
|
162
|
-
Object.defineProperty(Websocket.prototype, "lastConnection", {
|
|
163
|
-
/**
|
|
164
|
-
* Getter for the last 'open' event, e.g. the last time the websocket was connected.
|
|
165
|
-
*
|
|
166
|
-
* @return the last 'open' event, or undefined if the websocket was never connected.
|
|
167
|
-
*/
|
|
168
|
-
get: function () {
|
|
169
|
-
return this._lastConnection;
|
|
170
|
-
},
|
|
171
|
-
enumerable: false,
|
|
172
|
-
configurable: true
|
|
173
|
-
});
|
|
174
|
-
Object.defineProperty(Websocket.prototype, "underlyingWebsocket", {
|
|
175
|
-
/**
|
|
176
|
-
* Getter for the underlying websocket. This can be used to access the browser's native websocket directly.
|
|
177
|
-
*
|
|
178
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket
|
|
179
|
-
* @return the underlying websocket.
|
|
180
|
-
*/
|
|
181
|
-
get: function () {
|
|
182
|
-
return this._underlyingWebsocket;
|
|
183
|
-
},
|
|
184
|
-
enumerable: false,
|
|
185
|
-
configurable: true
|
|
186
|
-
});
|
|
187
|
-
Object.defineProperty(Websocket.prototype, "readyState", {
|
|
188
|
-
/**
|
|
189
|
-
* Getter for the readyState of the underlying websocket.
|
|
190
|
-
*
|
|
191
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/readyState
|
|
192
|
-
* @return the readyState of the underlying websocket.
|
|
193
|
-
*/
|
|
194
|
-
get: function () {
|
|
195
|
-
return this._underlyingWebsocket.readyState;
|
|
196
|
-
},
|
|
197
|
-
enumerable: false,
|
|
198
|
-
configurable: true
|
|
199
|
-
});
|
|
200
|
-
Object.defineProperty(Websocket.prototype, "bufferedAmount", {
|
|
201
|
-
/**
|
|
202
|
-
* Getter for the bufferedAmount of the underlying websocket.
|
|
203
|
-
*
|
|
204
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/bufferedAmount
|
|
205
|
-
* @return the bufferedAmount of the underlying websocket.
|
|
206
|
-
*/
|
|
207
|
-
get: function () {
|
|
208
|
-
return this._underlyingWebsocket.bufferedAmount;
|
|
209
|
-
},
|
|
210
|
-
enumerable: false,
|
|
211
|
-
configurable: true
|
|
212
|
-
});
|
|
213
|
-
Object.defineProperty(Websocket.prototype, "extensions", {
|
|
214
|
-
/**
|
|
215
|
-
* Getter for the extensions of the underlying websocket.
|
|
216
|
-
*
|
|
217
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/extensions
|
|
218
|
-
* @return the extensions of the underlying websocket.
|
|
219
|
-
*/
|
|
220
|
-
get: function () {
|
|
221
|
-
return this._underlyingWebsocket.extensions;
|
|
222
|
-
},
|
|
223
|
-
enumerable: false,
|
|
224
|
-
configurable: true
|
|
225
|
-
});
|
|
226
|
-
Object.defineProperty(Websocket.prototype, "binaryType", {
|
|
227
|
-
/**
|
|
228
|
-
* Getter for the binaryType of the underlying websocket.
|
|
229
|
-
*
|
|
230
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/binaryType
|
|
231
|
-
* @return the binaryType of the underlying websocket.
|
|
232
|
-
*/
|
|
233
|
-
get: function () {
|
|
234
|
-
return this._underlyingWebsocket.binaryType;
|
|
235
|
-
},
|
|
236
|
-
/**
|
|
237
|
-
* Setter for the binaryType of the underlying websocket.
|
|
238
|
-
*
|
|
239
|
-
* @param value to set, 'blob' or 'arraybuffer'.
|
|
240
|
-
*/
|
|
241
|
-
set: function (value) {
|
|
242
|
-
this._underlyingWebsocket.binaryType = value;
|
|
243
|
-
},
|
|
244
|
-
enumerable: false,
|
|
245
|
-
configurable: true
|
|
246
|
-
});
|
|
247
|
-
/**
|
|
248
|
-
* Sends data over the websocket.
|
|
249
|
-
*
|
|
250
|
-
* If the websocket is not connected and a buffer was provided on creation, the data will be added to the buffer.
|
|
251
|
-
* If no buffer was provided or the websocket was closed by the user, the data will be dropped.
|
|
252
|
-
*
|
|
253
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send
|
|
254
|
-
* @param data to send.
|
|
255
|
-
*/
|
|
256
|
-
Websocket.prototype.send = function (data) {
|
|
257
|
-
if (this.closedByUser)
|
|
258
|
-
return; // no-op if closed by user
|
|
259
|
-
if (this._underlyingWebsocket.readyState === this._underlyingWebsocket.OPEN) {
|
|
260
|
-
this._underlyingWebsocket.send(data); // websocket is connected, send data
|
|
261
|
-
}
|
|
262
|
-
else if (this.buffer !== undefined) {
|
|
263
|
-
this.buffer.add(data); // websocket is not connected, add data to buffer
|
|
264
|
-
}
|
|
265
|
-
};
|
|
266
|
-
/**
|
|
267
|
-
* Close the websocket. No connection-retry will be attempted after this.
|
|
268
|
-
*
|
|
269
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close
|
|
270
|
-
* @param code optional close code.
|
|
271
|
-
* @param reason optional close reason.
|
|
272
|
-
*/
|
|
273
|
-
Websocket.prototype.close = function (code, reason) {
|
|
274
|
-
this.cancelScheduledConnectionRetry(); // cancel any scheduled retries
|
|
275
|
-
this._closedByUser = true; // mark websocket as closed by user
|
|
276
|
-
this._underlyingWebsocket.close(code, reason); // close underlying websocket with provided code and reason
|
|
277
|
-
};
|
|
278
|
-
/**
|
|
279
|
-
* Adds an event listener for the given event-type.
|
|
280
|
-
*
|
|
281
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
|
|
282
|
-
* @param type of the event to add the listener for.
|
|
283
|
-
* @param listener to add.
|
|
284
|
-
* @param options to use when adding the listener.
|
|
285
|
-
*/
|
|
286
|
-
Websocket.prototype.addEventListener = function (type, listener, options) {
|
|
287
|
-
this._options.listeners[type].push({ listener: listener, options: options }); // add listener to list of listeners
|
|
288
|
-
};
|
|
289
|
-
/**
|
|
290
|
-
* Removes one or more event listener for the given event-type that match the given listener and options.
|
|
291
|
-
*
|
|
292
|
-
* @param type of the event to remove the listener for.
|
|
293
|
-
* @param listener to remove.
|
|
294
|
-
* @param options that were used when the listener was added.
|
|
295
|
-
*/
|
|
296
|
-
Websocket.prototype.removeEventListener = function (type, listener, options) {
|
|
297
|
-
var isListenerNotToBeRemoved = function (l) { return l.listener !== listener || l.options !== options; };
|
|
298
|
-
this._options.listeners[type] =
|
|
299
|
-
this._options.listeners[type].filter(isListenerNotToBeRemoved); // only keep listeners that are not to be removed
|
|
300
|
-
};
|
|
301
|
-
/**
|
|
302
|
-
* Creates a new browser-native websocket and connects it to the given URL with the given protocols
|
|
303
|
-
* and adds all event listeners to the browser-native websocket.
|
|
304
|
-
*
|
|
305
|
-
* @return the created browser-native websocket which is also stored in the '_underlyingWebsocket' property.
|
|
306
|
-
*/
|
|
307
|
-
Websocket.prototype.tryConnect = function () {
|
|
308
|
-
this._url =
|
|
309
|
-
typeof this._urlProvider === "function"
|
|
310
|
-
? this._urlProvider()
|
|
311
|
-
: this._urlProvider;
|
|
312
|
-
this._underlyingWebsocket = new WebSocket(this._url, this.protocols); // create new browser-native websocket and add all event listeners
|
|
313
|
-
this._underlyingWebsocket.addEventListener(websocket_event_1.WebsocketEvent.open, this.handleOpenEvent);
|
|
314
|
-
this._underlyingWebsocket.addEventListener(websocket_event_1.WebsocketEvent.close, this.handleCloseEvent);
|
|
315
|
-
this._underlyingWebsocket.addEventListener(websocket_event_1.WebsocketEvent.error, this.handleErrorEvent);
|
|
316
|
-
this._underlyingWebsocket.addEventListener(websocket_event_1.WebsocketEvent.message, this.handleMessageEvent);
|
|
317
|
-
return this._underlyingWebsocket;
|
|
318
|
-
};
|
|
319
|
-
/**
|
|
320
|
-
* Removes all event listeners from the browser-native websocket and closes it.
|
|
321
|
-
*/
|
|
322
|
-
Websocket.prototype.clearWebsocket = function () {
|
|
323
|
-
this._underlyingWebsocket.removeEventListener(websocket_event_1.WebsocketEvent.open, this.handleOpenEvent);
|
|
324
|
-
this._underlyingWebsocket.removeEventListener(websocket_event_1.WebsocketEvent.close, this.handleCloseEvent);
|
|
325
|
-
this._underlyingWebsocket.removeEventListener(websocket_event_1.WebsocketEvent.error, this.handleErrorEvent);
|
|
326
|
-
this._underlyingWebsocket.removeEventListener(websocket_event_1.WebsocketEvent.message, this.handleMessageEvent);
|
|
327
|
-
this._underlyingWebsocket.close();
|
|
328
|
-
};
|
|
329
|
-
/**
|
|
330
|
-
* Dispatch an event to all listeners of the given event-type.
|
|
331
|
-
*
|
|
332
|
-
* @param type of the event to dispatch.
|
|
333
|
-
* @param event to dispatch.
|
|
334
|
-
*/
|
|
335
|
-
Websocket.prototype.dispatchEvent = function (type, event) {
|
|
336
|
-
var _this = this;
|
|
337
|
-
var eventListeners = this._options.listeners[type];
|
|
338
|
-
var newEventListeners = [];
|
|
339
|
-
eventListeners.forEach(function (_a) {
|
|
340
|
-
var listener = _a.listener, options = _a.options;
|
|
341
|
-
listener(_this, event); // invoke listener with event
|
|
342
|
-
if (options === undefined ||
|
|
343
|
-
options.once === undefined ||
|
|
344
|
-
!options.once) {
|
|
345
|
-
newEventListeners.push({ listener: listener, options: options }); // only keep listener if it isn't a once-listener
|
|
346
|
-
}
|
|
347
|
-
});
|
|
348
|
-
this._options.listeners[type] = newEventListeners; // replace old listeners with new listeners that don't include once-listeners
|
|
349
|
-
};
|
|
350
|
-
/**
|
|
351
|
-
* Handles the given event by dispatching it to all listeners of the given event-type.
|
|
352
|
-
*
|
|
353
|
-
* @param type of the event to handle.
|
|
354
|
-
* @param event to handle.
|
|
355
|
-
*/
|
|
356
|
-
Websocket.prototype.handleEvent = function (type, event) {
|
|
357
|
-
switch (type) {
|
|
358
|
-
case websocket_event_1.WebsocketEvent.close:
|
|
359
|
-
this.dispatchEvent(type, event);
|
|
360
|
-
this.scheduleConnectionRetryIfNeeded(); // schedule a new connection retry if the websocket was closed by the server
|
|
361
|
-
break;
|
|
362
|
-
case websocket_event_1.WebsocketEvent.open:
|
|
363
|
-
if (this.backoff !== undefined && this._lastConnection !== undefined) {
|
|
364
|
-
// websocket was reconnected, dispatch reconnect event and reset backoff
|
|
365
|
-
var detail = {
|
|
366
|
-
retries: this.backoff.retries,
|
|
367
|
-
lastConnection: new Date(this._lastConnection),
|
|
368
|
-
};
|
|
369
|
-
var event_1 = new CustomEvent(websocket_event_1.WebsocketEvent.reconnect, {
|
|
370
|
-
detail: detail,
|
|
371
|
-
});
|
|
372
|
-
this.dispatchEvent(websocket_event_1.WebsocketEvent.reconnect, event_1);
|
|
373
|
-
this.backoff.reset();
|
|
374
|
-
}
|
|
375
|
-
this._lastConnection = new Date();
|
|
376
|
-
this.dispatchEvent(type, event); // dispatch open event and send buffered data
|
|
377
|
-
this.sendBufferedData();
|
|
378
|
-
break;
|
|
379
|
-
case websocket_event_1.WebsocketEvent.retry:
|
|
380
|
-
this.dispatchEvent(type, event); // dispatch retry event and try to connect
|
|
381
|
-
this.clearWebsocket(); // clear the old websocket
|
|
382
|
-
this.tryConnect();
|
|
383
|
-
break;
|
|
384
|
-
default:
|
|
385
|
-
this.dispatchEvent(type, event); // dispatch event to all listeners of the given event-type
|
|
386
|
-
break;
|
|
387
|
-
}
|
|
388
|
-
};
|
|
389
|
-
/**
|
|
390
|
-
* Sends buffered data if there is a buffer defined.
|
|
391
|
-
*/
|
|
392
|
-
Websocket.prototype.sendBufferedData = function () {
|
|
393
|
-
if (this.buffer === undefined) {
|
|
394
|
-
return; // no buffer defined, nothing to send
|
|
395
|
-
}
|
|
396
|
-
for (var ele = this.buffer.read(); ele !== undefined; ele = this.buffer.read()) {
|
|
397
|
-
this.send(ele); // send buffered data
|
|
398
|
-
}
|
|
399
|
-
};
|
|
400
|
-
/**
|
|
401
|
-
* Schedules a connection-retry if there is a backoff defined and the websocket was not closed by the user.
|
|
402
|
-
*/
|
|
403
|
-
Websocket.prototype.scheduleConnectionRetryIfNeeded = function () {
|
|
404
|
-
var _this = this;
|
|
405
|
-
if (this.closedByUser) {
|
|
406
|
-
return; // user closed the websocket, no retry
|
|
407
|
-
}
|
|
408
|
-
if (this.backoff === undefined) {
|
|
409
|
-
return; // no backoff defined, no retry
|
|
410
|
-
}
|
|
411
|
-
// handler dispatches the retry event to all listeners of the retry event-type
|
|
412
|
-
var handleRetryEvent = function (detail) {
|
|
413
|
-
var event = new CustomEvent(websocket_event_1.WebsocketEvent.retry, { detail: detail });
|
|
414
|
-
_this.handleEvent(websocket_event_1.WebsocketEvent.retry, event);
|
|
415
|
-
};
|
|
416
|
-
// create retry event detail, depending on the 'instantReconnect' option
|
|
417
|
-
var retryEventDetail = {
|
|
418
|
-
backoff: this._options.retry.instantReconnect === true ? 0 : this.backoff.next(),
|
|
419
|
-
retries: this._options.retry.instantReconnect === true
|
|
420
|
-
? 0
|
|
421
|
-
: this.backoff.retries,
|
|
422
|
-
lastConnection: this._lastConnection,
|
|
423
|
-
};
|
|
424
|
-
// schedule a new connection-retry if the maximum number of retries is not reached yet
|
|
425
|
-
if (this._options.retry.maxRetries === undefined ||
|
|
426
|
-
retryEventDetail.retries <= this._options.retry.maxRetries) {
|
|
427
|
-
this.retryTimeout = globalThis.setTimeout(function () { return handleRetryEvent(retryEventDetail); }, retryEventDetail.backoff);
|
|
428
|
-
}
|
|
429
|
-
};
|
|
430
|
-
/**
|
|
431
|
-
* Cancels the scheduled connection-retry, if there is one.
|
|
432
|
-
*/
|
|
433
|
-
Websocket.prototype.cancelScheduledConnectionRetry = function () {
|
|
434
|
-
globalThis.clearTimeout(this.retryTimeout);
|
|
435
|
-
};
|
|
436
|
-
return Websocket;
|
|
437
|
-
}());
|
|
438
|
-
exports.Websocket = Websocket;
|
|
439
|
-
//# sourceMappingURL=websocket.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/websocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"websocket_buffer.d.ts","sourceRoot":"","sources":["../../../src/websocket_buffer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,eAAe,CAC9B,CAAC,GAAG,MAAM,GAAG,eAAe,GAAG,IAAI,GAAG,eAAe;IAErD;;;OAGG;IACH,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;IAEtB;;;OAGG;IACH,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC;CACvB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"websocket_buffer.js","sourceRoot":"","sources":["../../../src/websocket_buffer.ts"],"names":[],"mappings":""}
|