@socket-mesh/client 18.0.8 → 18.1.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 +2 -2
- package/dist/client-auth-engine.d.ts +22 -0
- package/dist/client-auth-engine.js +52 -0
- package/dist/client-channels.d.ts +22 -0
- package/dist/client-channels.js +149 -0
- package/dist/client-socket-options.d.ts +24 -0
- package/dist/client-socket-options.js +6 -0
- package/dist/client-socket.d.ts +26 -0
- package/dist/client-socket.js +100 -0
- package/dist/client-transport.d.ts +52 -0
- package/dist/client-transport.js +261 -0
- package/dist/handlers/index.d.ts +4 -0
- package/dist/handlers/index.js +4 -0
- package/dist/handlers/kickout.d.ts +6 -0
- package/dist/handlers/kickout.js +5 -0
- package/dist/handlers/publish.d.ts +7 -0
- package/dist/handlers/publish.js +3 -0
- package/dist/handlers/remove-auth-token.d.ts +2 -0
- package/dist/handlers/remove-auth-token.js +3 -0
- package/dist/handlers/set-auth-token.d.ts +3 -0
- package/dist/handlers/set-auth-token.js +3 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +8 -0
- package/dist/maps/client-map.d.ts +21 -0
- package/dist/maps/client-map.js +1 -0
- package/dist/maps/index.d.ts +3 -0
- package/dist/maps/index.js +3 -0
- package/dist/maps/server-map.d.ts +27 -0
- package/dist/maps/server-map.js +1 -0
- package/dist/maps/socket-map.d.ts +17 -0
- package/dist/maps/socket-map.js +1 -0
- package/dist/plugins/batching-plugin.d.ts +41 -0
- package/dist/plugins/batching-plugin.js +111 -0
- package/dist/plugins/in-order-plugin.d.ts +10 -0
- package/dist/plugins/in-order-plugin.js +70 -0
- package/dist/plugins/index.d.ts +3 -0
- package/dist/plugins/index.js +3 -0
- package/dist/plugins/offline-plugin.d.ts +13 -0
- package/dist/plugins/offline-plugin.js +47 -0
- package/package.json +54 -58
- package/auth.d.ts +0 -21
- package/auth.js +0 -49
- package/auth.js.map +0 -1
- package/client-options.d.ts +0 -53
- package/client-options.js +0 -2
- package/client-options.js.map +0 -1
- package/clientsocket.d.ts +0 -135
- package/clientsocket.js +0 -898
- package/clientsocket.js.map +0 -1
- package/events.d.ts +0 -54
- package/events.js +0 -2
- package/events.js.map +0 -1
- package/factory.d.ts +0 -3
- package/factory.js +0 -37
- package/factory.js.map +0 -1
- package/index.d.ts +0 -7
- package/index.js +0 -10
- package/index.js.map +0 -1
- package/remote-procedure.d.ts +0 -6
- package/remote-procedure.js +0 -10
- package/remote-procedure.js.map +0 -1
- package/socket-state.d.ts +0 -5
- package/socket-state.js +0 -7
- package/socket-state.js.map +0 -1
- package/transport-handlers.d.ts +0 -37
- package/transport-handlers.js +0 -2
- package/transport-handlers.js.map +0 -1
- package/transport.d.ts +0 -84
- package/transport.js +0 -441
- package/transport.js.map +0 -1
- package/wait.d.ts +0 -1
- package/wait.js +0 -8
- package/wait.js.map +0 -1
- package/ws-browser.d.ts +0 -15
- package/ws-browser.js +0 -40
- package/ws-browser.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EmptySocketMap, Plugin, SendRequestPluginArgs, SocketMap } from "@socket-mesh/core";
|
|
2
|
+
export declare class OfflinePlugin<T extends SocketMap = EmptySocketMap> implements Plugin<T> {
|
|
3
|
+
private _isReady;
|
|
4
|
+
private _requests;
|
|
5
|
+
private _continue;
|
|
6
|
+
constructor();
|
|
7
|
+
type: "offline";
|
|
8
|
+
sendRequest({ requests, cont }: SendRequestPluginArgs<T>): void;
|
|
9
|
+
onReady(): void;
|
|
10
|
+
onClose(): void;
|
|
11
|
+
onDisconnected(): void;
|
|
12
|
+
private flush;
|
|
13
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
const SYSTEM_METHODS = ['#handshake', '#removeAuthToken'];
|
|
2
|
+
export class OfflinePlugin {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.type = 'offline';
|
|
5
|
+
this._isReady = false;
|
|
6
|
+
this._requests = [];
|
|
7
|
+
this._continue = null;
|
|
8
|
+
}
|
|
9
|
+
sendRequest({ requests, cont }) {
|
|
10
|
+
if (this._isReady) {
|
|
11
|
+
cont(requests);
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const systemRequests = requests.filter(item => SYSTEM_METHODS.indexOf(String(item.method)) > -1);
|
|
15
|
+
let otherRequests = requests;
|
|
16
|
+
if (systemRequests.length) {
|
|
17
|
+
otherRequests = (systemRequests.length === requests.length) ? [] : requests.filter(item => SYSTEM_METHODS.indexOf(String(item.method)) < 0);
|
|
18
|
+
}
|
|
19
|
+
if (otherRequests.length) {
|
|
20
|
+
this._continue = cont;
|
|
21
|
+
this._requests.push(otherRequests);
|
|
22
|
+
}
|
|
23
|
+
if (systemRequests.length) {
|
|
24
|
+
cont(systemRequests);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
onReady() {
|
|
28
|
+
this._isReady = true;
|
|
29
|
+
this.flush();
|
|
30
|
+
}
|
|
31
|
+
onClose() {
|
|
32
|
+
this._isReady = false;
|
|
33
|
+
}
|
|
34
|
+
onDisconnected() {
|
|
35
|
+
this._requests = [];
|
|
36
|
+
this._continue = null;
|
|
37
|
+
}
|
|
38
|
+
flush() {
|
|
39
|
+
if (this._requests.length) {
|
|
40
|
+
for (const reqs of this._requests) {
|
|
41
|
+
this._continue(reqs);
|
|
42
|
+
}
|
|
43
|
+
this._requests = [];
|
|
44
|
+
this._continue = null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
package/package.json
CHANGED
|
@@ -1,62 +1,58 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
"Greg Kimmy",
|
|
10
|
-
{
|
|
11
|
-
"name": "Jonathan Gros-Dubois",
|
|
12
|
-
"email": "grosjona@yahoo.com.au"
|
|
13
|
-
}
|
|
14
|
-
],
|
|
15
|
-
"repository": {
|
|
16
|
-
"type": "git",
|
|
17
|
-
"url": "git://github.com/socket-mesh/client.git"
|
|
18
|
-
},
|
|
19
|
-
"scripts": {
|
|
20
|
-
"build": "node ./scripts/build.mjs && tsc",
|
|
21
|
-
"deploy": "cd dist && npm publish --access public",
|
|
22
|
-
"test": "cross-env node --test --loader ts-node/esm test/test.ts"
|
|
23
|
-
},
|
|
24
|
-
"keywords": [
|
|
25
|
-
"websocket",
|
|
26
|
-
"realtime",
|
|
27
|
-
"client",
|
|
28
|
-
"socketcluster",
|
|
29
|
-
"socketMesh"
|
|
30
|
-
],
|
|
31
|
-
"dependencies": {
|
|
32
|
-
"@socket-mesh/auth": "^2.1.6",
|
|
33
|
-
"@socket-mesh/async-stream-emitter": "^7.0.6",
|
|
34
|
-
"@socket-mesh/channel": "^6.0.29",
|
|
35
|
-
"@socket-mesh/consumable-stream": "3.2.1",
|
|
36
|
-
"@socket-mesh/errors": "^3.0.8",
|
|
37
|
-
"@socket-mesh/formatter": "^4.0.5",
|
|
38
|
-
"@socket-mesh/request": "^2.0.9",
|
|
39
|
-
"@socket-mesh/stream-demux": "^10.0.4",
|
|
40
|
-
"buffer": "^6.0.3",
|
|
41
|
-
"clone-deep": "^4.0.1",
|
|
42
|
-
"linked-list": "^3.1.0",
|
|
43
|
-
"uuid": "^9.0.1",
|
|
44
|
-
"vinyl-buffer": "^1.0.1",
|
|
45
|
-
"ws": "^8.14.2"
|
|
46
|
-
},
|
|
2
|
+
"name": "@socket-mesh/client",
|
|
3
|
+
"description": "A TCP socket pair for easily transmitting full messages without worrying about request size limits.",
|
|
4
|
+
"version": "18.1.0",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"files": ["./dist"],
|
|
47
9
|
"browser": {
|
|
48
10
|
"ws": "./lib/ws-browser.js"
|
|
49
|
-
},
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
"
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
"
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
11
|
+
},
|
|
12
|
+
"author": {
|
|
13
|
+
"name": "Greg Kimmy"
|
|
14
|
+
},
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "node ../../scripts/build.mjs && tsc --project tsconfig.build.json",
|
|
17
|
+
"bundle": "rollup --config ./rollup.config.js",
|
|
18
|
+
"deploy": "npm run build && node ../../scripts/publish.mjs",
|
|
19
|
+
"test": "cross-env node --test --import=./run-test.js test/client-test.ts"
|
|
20
|
+
},
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@rollup/plugin-alias": "^5.1.0",
|
|
23
|
+
"@rollup/plugin-commonjs": "^26.0.1",
|
|
24
|
+
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
25
|
+
"@rollup/plugin-terser": "^0.4.4",
|
|
26
|
+
"@rollup/plugin-typescript": "^11.1.6",
|
|
27
|
+
"@socket-mesh/server": "*",
|
|
28
|
+
"@socket-mesh/local-storage": "^1.0.2",
|
|
29
|
+
"@types/clone-deep": "^4.0.4",
|
|
30
|
+
"@types/jsonwebtoken": "^9.0.6",
|
|
31
|
+
"@types/ws": "^8.5.10",
|
|
32
|
+
"jsonwebtoken": "^9.0.2",
|
|
33
|
+
"rollup": "^4.18.1",
|
|
34
|
+
"tslib": "^2.6.3"
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@socket-mesh/async-stream-emitter": "^7.1.2",
|
|
38
|
+
"@socket-mesh/auth": "^2.2.0",
|
|
39
|
+
"@socket-mesh/channels": "^6.1.0",
|
|
40
|
+
"@socket-mesh/core": "^1.0.0",
|
|
41
|
+
"@socket-mesh/errors": "^3.2.0",
|
|
42
|
+
"@socket-mesh/formatter": "^4.1.0",
|
|
43
|
+
"buffer": "^5.2.1",
|
|
44
|
+
"events": "^3.3.0",
|
|
45
|
+
"isomorphic-ws": "^5.0.0",
|
|
46
|
+
"ws": "^8.18.0"
|
|
47
|
+
},
|
|
48
|
+
"keywords": [
|
|
49
|
+
"ncom",
|
|
50
|
+
"tcp",
|
|
51
|
+
"simple",
|
|
52
|
+
"socket",
|
|
53
|
+
"messages"
|
|
54
|
+
],
|
|
55
|
+
"engines": {
|
|
56
|
+
"node": ">= 0.8.0"
|
|
57
|
+
}
|
|
62
58
|
}
|
package/auth.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { AuthState, AuthToken, SignedAuthToken } from "@socket-mesh/auth";
|
|
2
|
-
export interface AuthStatus {
|
|
3
|
-
isAuthenticated?: AuthState;
|
|
4
|
-
authError: any;
|
|
5
|
-
}
|
|
6
|
-
export interface AuthEngine {
|
|
7
|
-
saveToken(name: string, token: SignedAuthToken, options?: {
|
|
8
|
-
[key: string]: any;
|
|
9
|
-
}): Promise<SignedAuthToken>;
|
|
10
|
-
removeToken(name: string): Promise<AuthToken | SignedAuthToken | null>;
|
|
11
|
-
loadToken(name: string): Promise<SignedAuthToken | null>;
|
|
12
|
-
}
|
|
13
|
-
export declare class LocalStorageAuthEngine implements AuthEngine {
|
|
14
|
-
private readonly _internalStorage;
|
|
15
|
-
readonly isLocalStorageEnabled: boolean;
|
|
16
|
-
constructor();
|
|
17
|
-
private _checkLocalStorageEnabled;
|
|
18
|
-
saveToken(name: string, token: string): Promise<SignedAuthToken>;
|
|
19
|
-
removeToken(name: string): Promise<SignedAuthToken>;
|
|
20
|
-
loadToken(name: string): Promise<SignedAuthToken>;
|
|
21
|
-
}
|
package/auth.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
export class LocalStorageAuthEngine {
|
|
2
|
-
constructor() {
|
|
3
|
-
this._internalStorage = {};
|
|
4
|
-
this.isLocalStorageEnabled = this._checkLocalStorageEnabled();
|
|
5
|
-
}
|
|
6
|
-
_checkLocalStorageEnabled() {
|
|
7
|
-
let err;
|
|
8
|
-
try {
|
|
9
|
-
// Safari, in Private Browsing Mode, looks like it supports localStorage but all calls to setItem
|
|
10
|
-
// throw QuotaExceededError. We're going to detect this and avoid hard to debug edge cases.
|
|
11
|
-
localStorage.setItem('__scLocalStorageTest', "1");
|
|
12
|
-
localStorage.removeItem('__scLocalStorageTest');
|
|
13
|
-
}
|
|
14
|
-
catch (e) {
|
|
15
|
-
err = e;
|
|
16
|
-
}
|
|
17
|
-
return !err;
|
|
18
|
-
}
|
|
19
|
-
async saveToken(name, token) {
|
|
20
|
-
if (this.isLocalStorageEnabled) {
|
|
21
|
-
localStorage.setItem(name, token);
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
this._internalStorage[name] = token;
|
|
25
|
-
}
|
|
26
|
-
return token;
|
|
27
|
-
}
|
|
28
|
-
async removeToken(name) {
|
|
29
|
-
let loadPromise = this.loadToken(name);
|
|
30
|
-
if (this.isLocalStorageEnabled) {
|
|
31
|
-
localStorage.removeItem(name);
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
delete this._internalStorage[name];
|
|
35
|
-
}
|
|
36
|
-
return loadPromise;
|
|
37
|
-
}
|
|
38
|
-
async loadToken(name) {
|
|
39
|
-
let token;
|
|
40
|
-
if (this.isLocalStorageEnabled) {
|
|
41
|
-
token = localStorage.getItem(name);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
token = this._internalStorage[name] || null;
|
|
45
|
-
}
|
|
46
|
-
return token;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=auth.js.map
|
package/auth.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAmBA,MAAM,OAAO,sBAAsB;IAIlC;QACC,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,yBAAyB,EAAE,CAAC;IAC/D,CAAC;IAEO,yBAAyB;QAChC,IAAI,GAAG,CAAC;QAER,IAAI,CAAC;YACJ,iGAAiG;YACjG,2FAA2F;YAC3F,YAAY,CAAC,OAAO,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;YAClD,YAAY,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,GAAG,GAAG,CAAC,CAAC;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,KAAa;QAC1C,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QACrC,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY;QAC7B,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAEvC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACP,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,WAAW,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC3B,IAAI,KAAK,CAAC;QAEV,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACP,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QAC7C,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;CACD"}
|
package/client-options.d.ts
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { AuthEngine } from "./auth.js";
|
|
2
|
-
import { CodecEngine } from "@socket-mesh/formatter";
|
|
3
|
-
import * as ws from "ws";
|
|
4
|
-
export type ProtocolVersions = 1 | 2;
|
|
5
|
-
export type CallIdGenerator = () => number;
|
|
6
|
-
export interface AutoReconnectOptions {
|
|
7
|
-
initialDelay?: number;
|
|
8
|
-
randomness?: number;
|
|
9
|
-
multiplier?: number;
|
|
10
|
-
maxDelay?: number;
|
|
11
|
-
}
|
|
12
|
-
export interface ClientOptions {
|
|
13
|
-
socketPath?: string;
|
|
14
|
-
host?: string;
|
|
15
|
-
hostname?: string;
|
|
16
|
-
secure?: boolean;
|
|
17
|
-
usabilityMode?: boolean;
|
|
18
|
-
port?: number;
|
|
19
|
-
path?: string;
|
|
20
|
-
protocolScheme?: string;
|
|
21
|
-
query?: string | {
|
|
22
|
-
[key: string]: string | string[];
|
|
23
|
-
};
|
|
24
|
-
ackTimeout?: number;
|
|
25
|
-
connectTimeout?: number;
|
|
26
|
-
autoConnect?: boolean;
|
|
27
|
-
autoReconnect?: boolean;
|
|
28
|
-
autoReconnectOptions?: AutoReconnectOptions;
|
|
29
|
-
timestampRequests?: boolean;
|
|
30
|
-
timestampParam?: string;
|
|
31
|
-
authEngine?: AuthEngine | null;
|
|
32
|
-
authTokenName?: string;
|
|
33
|
-
binaryType?: "nodebuffer" | "arraybuffer" | "fragments";
|
|
34
|
-
cloneData?: boolean;
|
|
35
|
-
autoSubscribeOnConnect?: boolean;
|
|
36
|
-
codecEngine?: CodecEngine | null;
|
|
37
|
-
channelPrefix?: string | null;
|
|
38
|
-
subscriptionRetryOptions?: object | null;
|
|
39
|
-
batchOnHandshake?: boolean;
|
|
40
|
-
batchOnHandshakeDuration?: number;
|
|
41
|
-
batchInterval?: number;
|
|
42
|
-
/**
|
|
43
|
-
* @deprecated The "protocol" option does not affect socketcluster-client - If you want to utilize SSL/TLS, use "secure" option instead
|
|
44
|
-
*/
|
|
45
|
-
protocol?: string;
|
|
46
|
-
protocolVersion?: ProtocolVersions;
|
|
47
|
-
wsOptions?: ws.ClientOptions;
|
|
48
|
-
version?: string;
|
|
49
|
-
clientId?: string;
|
|
50
|
-
pingTimeout?: number;
|
|
51
|
-
pingTimeoutDisabled?: boolean;
|
|
52
|
-
callIdGenerator?: CallIdGenerator;
|
|
53
|
-
}
|
package/client-options.js
DELETED
package/client-options.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client-options.js","sourceRoot":"","sources":["../src/client-options.ts"],"names":[],"mappings":""}
|
package/clientsocket.d.ts
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { ClientOptions, ProtocolVersions } from "./client-options.js";
|
|
2
|
-
import { DemuxedConsumableStream, StreamDemuxWrapper } from "@socket-mesh/stream-demux";
|
|
3
|
-
import { AuthEngine, AuthStatus } from "./auth.js";
|
|
4
|
-
import { AuthState, AuthToken, SignedAuthToken } from "@socket-mesh/auth";
|
|
5
|
-
import { CodecEngine } from "@socket-mesh/formatter";
|
|
6
|
-
import { Transport } from "./transport.js";
|
|
7
|
-
import * as ws from "ws";
|
|
8
|
-
import { Client, ChannelDetails } from "@socket-mesh/channel";
|
|
9
|
-
import { SocketState } from "./socket-state.js";
|
|
10
|
-
import { AuthStateChanged, AuthTokenRemoved, Authenticated, Closed, Connected, Connecting, Deauthenticated, ErrorOccured, KickedOut, MessageReceived, SubscribeFailed, SubscribeStateChanged, Subscribed, Unsubscribed } from "./events.js";
|
|
11
|
-
import { RemoteProcedure } from "./remote-procedure.js";
|
|
12
|
-
export declare class ClientSocket extends Client<any> {
|
|
13
|
-
auth: AuthEngine;
|
|
14
|
-
authTokenName?: string;
|
|
15
|
-
authToken?: AuthToken | null;
|
|
16
|
-
authState: AuthState;
|
|
17
|
-
codec: CodecEngine;
|
|
18
|
-
transport: Transport;
|
|
19
|
-
isBatching: boolean;
|
|
20
|
-
batchOnHandshake: boolean;
|
|
21
|
-
batchOnHandshakeDuration: number;
|
|
22
|
-
clientId?: string;
|
|
23
|
-
id: string | null;
|
|
24
|
-
pendingReconnect: boolean;
|
|
25
|
-
pendingReconnectTimeout: number;
|
|
26
|
-
preparingPendingSubscriptions: boolean;
|
|
27
|
-
protocolVersion: ProtocolVersions;
|
|
28
|
-
channelPrefix: string | null;
|
|
29
|
-
connectAttempts: number;
|
|
30
|
-
options: ClientOptions;
|
|
31
|
-
connectTimeout: number;
|
|
32
|
-
ackTimeout: number;
|
|
33
|
-
pingTimeout: number;
|
|
34
|
-
pingTimeoutDisabled: boolean;
|
|
35
|
-
state: SocketState;
|
|
36
|
-
signedAuthToken: SignedAuthToken | null;
|
|
37
|
-
wsOptions?: ws.ClientOptions;
|
|
38
|
-
version?: string | null;
|
|
39
|
-
readonly receiver: StreamDemuxWrapper<any>;
|
|
40
|
-
readonly procedure: RemoteProcedure;
|
|
41
|
-
private _cid;
|
|
42
|
-
private _batchingIntervalId;
|
|
43
|
-
private _receiverDemux;
|
|
44
|
-
private _procedureDemux;
|
|
45
|
-
private _reconnectTimeoutRef?;
|
|
46
|
-
private readonly _outboundBuffer;
|
|
47
|
-
constructor(socketOptions?: ClientOptions);
|
|
48
|
-
uri(): string;
|
|
49
|
-
getBackpressure(): number;
|
|
50
|
-
private _setAuthToken;
|
|
51
|
-
private _removeAuthToken;
|
|
52
|
-
getState(): SocketState;
|
|
53
|
-
getBytesReceived(): unknown;
|
|
54
|
-
deauthenticate(): Promise<void>;
|
|
55
|
-
connect(socketOptions?: ClientOptions): void;
|
|
56
|
-
reconnect(code?: number, reason?: string): void;
|
|
57
|
-
disconnect(code?: number, reason?: string): void;
|
|
58
|
-
private _changeToUnauthenticatedStateAndClearTokens;
|
|
59
|
-
private _changeToAuthenticatedState;
|
|
60
|
-
decodeBase64(encodedString: string): string;
|
|
61
|
-
encodeBase64(decodedString: string): string;
|
|
62
|
-
private _extractAuthTokenData;
|
|
63
|
-
getAuthToken(): AuthToken;
|
|
64
|
-
getSignedAuthToken(): SignedAuthToken;
|
|
65
|
-
authenticate(signedAuthToken: SignedAuthToken): Promise<AuthStatus>;
|
|
66
|
-
private _tryReconnect;
|
|
67
|
-
private _onOpen;
|
|
68
|
-
private _onError;
|
|
69
|
-
private _suspendSubscriptions;
|
|
70
|
-
private _abortAllPendingEventsDueToBadConnection;
|
|
71
|
-
private _destroy;
|
|
72
|
-
private _onInboundTransmit;
|
|
73
|
-
private _onInboundInvoke;
|
|
74
|
-
decode(message: any): any;
|
|
75
|
-
encode(object: any): string;
|
|
76
|
-
private _flushOutboundBuffer;
|
|
77
|
-
private _handleEventAckTimeout;
|
|
78
|
-
private _processOutboundEvent;
|
|
79
|
-
send(data: string): void;
|
|
80
|
-
transmit(event: string, data?: any, options?: {
|
|
81
|
-
ackTimeout?: number;
|
|
82
|
-
}): Promise<void>;
|
|
83
|
-
invoke<T>(event: string, data?: any, options?: {
|
|
84
|
-
ackTimeout?: number;
|
|
85
|
-
}): Promise<T>;
|
|
86
|
-
transmitPublish(channelName: string, data: any): Promise<void>;
|
|
87
|
-
invokePublish<T>(channelName: string, data: any): Promise<T>;
|
|
88
|
-
private _triggerChannelSubscribe;
|
|
89
|
-
private _triggerChannelSubscribeFail;
|
|
90
|
-
private _cancelPendingSubscribeCallback;
|
|
91
|
-
private _decorateChannelName;
|
|
92
|
-
private _undecorateChannelName;
|
|
93
|
-
startBatch(): void;
|
|
94
|
-
flushBatch(): void;
|
|
95
|
-
cancelBatch(): void;
|
|
96
|
-
private _startBatching;
|
|
97
|
-
startBatching(): void;
|
|
98
|
-
private _stopBatching;
|
|
99
|
-
stopBatching(): void;
|
|
100
|
-
private _cancelBatching;
|
|
101
|
-
cancelBatching(): void;
|
|
102
|
-
protected _trySubscribe(channel: ChannelDetails): void;
|
|
103
|
-
emit(eventName: 'removeAuthToken', data: AuthTokenRemoved): void;
|
|
104
|
-
emit(eventName: 'connect', data: Connected): void;
|
|
105
|
-
emit(eventName: 'connecting', data: Connecting): void;
|
|
106
|
-
emit(eventName: 'authStateChange', data: AuthStateChanged): void;
|
|
107
|
-
emit(eventName: 'authenticate', data: Authenticated): void;
|
|
108
|
-
emit(eventName: 'deauthenticate', data: Deauthenticated): void;
|
|
109
|
-
emit(eventName: 'error', data: ErrorOccured): void;
|
|
110
|
-
emit(eventName: 'connectAbort' | 'disconnect' | 'close', data: Closed): void;
|
|
111
|
-
emit(eventName: 'subscribeStateChange', data: SubscribeStateChanged): void;
|
|
112
|
-
emit(eventName: 'subscribe' | 'subscribeRequest', data: Subscribed): void;
|
|
113
|
-
emit(eventName: 'subscribeFail', data: SubscribeFailed): void;
|
|
114
|
-
emit(eventName: 'unsubscribe', data: Unsubscribed): void;
|
|
115
|
-
emit(eventName: 'kickOut', data: KickedOut): void;
|
|
116
|
-
emit(eventName: string, data: any): void;
|
|
117
|
-
listen(eventName: 'removeAuthToken'): DemuxedConsumableStream<AuthTokenRemoved>;
|
|
118
|
-
listen(eventName: 'connect'): DemuxedConsumableStream<Connected>;
|
|
119
|
-
listen(eventName: 'connecting'): DemuxedConsumableStream<Connecting>;
|
|
120
|
-
listen(eventName: 'authStateChange'): DemuxedConsumableStream<AuthStateChanged>;
|
|
121
|
-
listen(eventName: 'authenticate'): DemuxedConsumableStream<Authenticated>;
|
|
122
|
-
listen(eventName: 'deauthenticate'): DemuxedConsumableStream<Deauthenticated>;
|
|
123
|
-
listen(eventName: 'error'): DemuxedConsumableStream<ErrorOccured>;
|
|
124
|
-
listen(eventName: 'connectAbort' | 'disconnect' | 'close'): DemuxedConsumableStream<Closed>;
|
|
125
|
-
listen(eventName: 'subscribeStateChange'): DemuxedConsumableStream<SubscribeStateChanged>;
|
|
126
|
-
listen(eventName: 'subscribe' | 'subscribeRequest'): DemuxedConsumableStream<Subscribed>;
|
|
127
|
-
listen(eventName: 'subscribeFail'): DemuxedConsumableStream<SubscribeFailed>;
|
|
128
|
-
listen(eventName: 'unsubscribe'): DemuxedConsumableStream<Unsubscribed>;
|
|
129
|
-
listen(eventName: 'kickOut'): DemuxedConsumableStream<KickedOut>;
|
|
130
|
-
listen(eventName: 'message'): DemuxedConsumableStream<MessageReceived>;
|
|
131
|
-
private _triggerChannelUnsubscribe;
|
|
132
|
-
protected _tryUnsubscribe(channel: ChannelDetails): void;
|
|
133
|
-
processPendingSubscriptions(): void;
|
|
134
|
-
get isBufferingBatch(): boolean;
|
|
135
|
-
}
|