@tdengine/websocket 3.2.3 → 3.3.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/lib/package.json +1 -1
- package/lib/src/client/wsClient.d.ts +23 -7
- package/lib/src/client/wsClient.d.ts.map +1 -1
- package/lib/src/client/wsClient.js +154 -139
- package/lib/src/client/wsConnector.d.ts +55 -9
- package/lib/src/client/wsConnector.d.ts.map +1 -1
- package/lib/src/client/wsConnector.js +519 -100
- package/lib/src/client/wsConnectorPool.d.ts +5 -1
- package/lib/src/client/wsConnectorPool.d.ts.map +1 -1
- package/lib/src/client/wsConnectorPool.js +61 -43
- package/lib/src/client/wsEventCallback.d.ts +3 -0
- package/lib/src/client/wsEventCallback.d.ts.map +1 -1
- package/lib/src/client/wsEventCallback.js +67 -8
- package/lib/src/common/addressConnectionTracker.d.ts +11 -0
- package/lib/src/common/addressConnectionTracker.d.ts.map +1 -0
- package/lib/src/common/addressConnectionTracker.js +53 -0
- package/lib/src/common/dsn.d.ts +14 -2
- package/lib/src/common/dsn.d.ts.map +1 -1
- package/lib/src/common/dsn.js +91 -22
- package/lib/src/common/taosResult.d.ts.map +1 -1
- package/lib/src/common/taosResult.js +0 -5
- package/lib/src/common/urlParser.d.ts +32 -0
- package/lib/src/common/urlParser.d.ts.map +1 -0
- package/lib/src/common/urlParser.js +201 -0
- package/lib/src/common/utils.d.ts +2 -1
- package/lib/src/common/utils.d.ts.map +1 -1
- package/lib/src/common/utils.js +35 -34
- package/lib/src/sql/wsSql.js +2 -2
- package/lib/src/stmt/FieldBindParams.d.ts.map +1 -1
- package/lib/src/stmt/wsColumnInfo.d.ts.map +1 -1
- package/lib/src/stmt/wsParams1.d.ts.map +1 -1
- package/lib/src/stmt/wsParams1.js +26 -26
- package/lib/src/stmt/wsParams2.d.ts.map +1 -1
- package/lib/src/stmt/wsParams2.js +0 -3
- package/lib/src/stmt/wsParamsBase.d.ts.map +1 -1
- package/lib/src/stmt/wsProto.d.ts.map +1 -1
- package/lib/src/stmt/wsProto.js +16 -16
- package/lib/src/stmt/wsStmt1.d.ts.map +1 -1
- package/lib/src/stmt/wsStmt2.d.ts +12 -4
- package/lib/src/stmt/wsStmt2.d.ts.map +1 -1
- package/lib/src/stmt/wsStmt2.js +182 -64
- package/lib/src/stmt/wsTableInfo.d.ts.map +1 -1
- package/lib/src/tmq/config.d.ts +3 -2
- package/lib/src/tmq/config.d.ts.map +1 -1
- package/lib/src/tmq/config.js +15 -15
- package/lib/src/tmq/wsTmq.d.ts +4 -1
- package/lib/src/tmq/wsTmq.d.ts.map +1 -1
- package/lib/src/tmq/wsTmq.js +50 -27
- package/lib/test/bulkPulling/a.test.d.ts +2 -0
- package/lib/test/bulkPulling/a.test.d.ts.map +1 -0
- package/lib/test/bulkPulling/a.test.js +166 -0
- package/lib/test/bulkPulling/dsn.test.js +19 -0
- package/lib/test/bulkPulling/retryConfig.test.js +11 -11
- package/lib/test/bulkPulling/sql.failover.test.d.ts +2 -0
- package/lib/test/bulkPulling/sql.failover.test.d.ts.map +1 -0
- package/lib/test/bulkPulling/sql.failover.test.js +338 -0
- package/lib/test/bulkPulling/stmt2.failover.test.d.ts +2 -0
- package/lib/test/bulkPulling/stmt2.failover.test.d.ts.map +1 -0
- package/lib/test/bulkPulling/stmt2.failover.test.js +313 -0
- package/lib/test/bulkPulling/stmt2.init.failover.test.d.ts +2 -0
- package/lib/test/bulkPulling/stmt2.init.failover.test.d.ts.map +1 -0
- package/lib/test/bulkPulling/stmt2.init.failover.test.js +50 -0
- package/lib/test/bulkPulling/tmq.failover.test.d.ts +2 -0
- package/lib/test/bulkPulling/tmq.failover.test.d.ts.map +1 -0
- package/lib/test/bulkPulling/tmq.failover.test.js +404 -0
- package/lib/test/bulkPulling/urlParser.test.d.ts +2 -0
- package/lib/test/bulkPulling/urlParser.test.d.ts.map +1 -0
- package/lib/test/bulkPulling/urlParser.test.js +452 -0
- package/lib/test/bulkPulling/wsClient.reconnect.integration.test.js +2 -2
- package/lib/test/bulkPulling/wsClient.recovery.test.d.ts +2 -0
- package/lib/test/bulkPulling/wsClient.recovery.test.d.ts.map +1 -0
- package/lib/test/bulkPulling/wsClient.recovery.test.js +104 -0
- package/lib/test/bulkPulling/wsConfig.dsn.test.js +2 -0
- package/lib/test/bulkPulling/wsConnector.failover.test.js +396 -27
- package/lib/test/bulkPulling/wsConnectorPool.key.test.js +12 -10
- package/lib/test/bulkPulling/wsConnectorPool.keyAuth.test.d.ts +2 -0
- package/lib/test/bulkPulling/wsConnectorPool.keyAuth.test.d.ts.map +1 -0
- package/lib/test/bulkPulling/wsConnectorPool.keyAuth.test.js +28 -0
- package/lib/test/bulkPulling/wsProxy.failover.integration.test.d.ts +2 -0
- package/lib/test/bulkPulling/wsProxy.failover.integration.test.d.ts.map +1 -0
- package/lib/test/bulkPulling/wsProxy.failover.integration.test.js +120 -0
- package/lib/test/bulkPulling/wsProxy.failover.test.d.ts +2 -0
- package/lib/test/bulkPulling/wsProxy.failover.test.d.ts.map +1 -0
- package/lib/test/bulkPulling/wsProxy.failover.test.js +465 -0
- package/lib/test/client/wsClient.recovery.test.d.ts +2 -0
- package/lib/test/client/wsClient.recovery.test.d.ts.map +1 -0
- package/lib/test/client/wsClient.recovery.test.js +122 -0
- package/lib/test/client/wsConnectPool.test.d.ts +2 -0
- package/lib/test/client/wsConnectPool.test.d.ts.map +1 -0
- package/lib/test/client/wsConnectPool.test.js +147 -0
- package/lib/test/client/wsConnector.failover.test.d.ts +2 -0
- package/lib/test/client/wsConnector.failover.test.d.ts.map +1 -0
- package/lib/test/client/wsConnector.failover.test.js +681 -0
- package/lib/test/client/wsConnector.leastConnections.test.d.ts +2 -0
- package/lib/test/client/wsConnector.leastConnections.test.d.ts.map +1 -0
- package/lib/test/client/wsConnector.leastConnections.test.js +71 -0
- package/lib/test/client/wsConnectorPool.key.test.d.ts +2 -0
- package/lib/test/client/wsConnectorPool.key.test.d.ts.map +1 -0
- package/lib/test/client/wsConnectorPool.key.test.js +127 -0
- package/lib/test/client/wsEventCallback.test.d.ts +2 -0
- package/lib/test/client/wsEventCallback.test.d.ts.map +1 -0
- package/lib/test/client/wsEventCallback.test.js +98 -0
- package/lib/test/common/addressConnectionTracker.test.d.ts +2 -0
- package/lib/test/common/addressConnectionTracker.test.d.ts.map +1 -0
- package/lib/test/common/addressConnectionTracker.test.js +74 -0
- package/lib/test/common/dsn.test.d.ts +2 -0
- package/lib/test/common/dsn.test.d.ts.map +1 -0
- package/lib/test/common/dsn.test.js +406 -0
- package/lib/test/common/log.test.d.ts +2 -0
- package/lib/test/common/log.test.d.ts.map +1 -0
- package/lib/test/common/log.test.js +54 -0
- package/lib/test/common/utils.test.d.ts +2 -0
- package/lib/test/common/utils.test.d.ts.map +1 -0
- package/lib/test/common/utils.test.js +13 -0
- package/lib/test/common/wsConfig.dsn.test.d.ts +2 -0
- package/lib/test/common/wsConfig.dsn.test.d.ts.map +1 -0
- package/lib/test/common/wsConfig.dsn.test.js +39 -0
- package/lib/test/helpers/utils.d.ts +27 -0
- package/lib/test/helpers/utils.d.ts.map +1 -0
- package/lib/test/helpers/utils.js +341 -0
- package/lib/test/helpers/wsFailoverProxy.d.ts +109 -0
- package/lib/test/helpers/wsFailoverProxy.d.ts.map +1 -0
- package/lib/test/helpers/wsFailoverProxy.js +420 -0
- package/lib/test/helpers/wsProxy.d.ts +110 -0
- package/lib/test/helpers/wsProxy.d.ts.map +1 -0
- package/lib/test/helpers/wsProxy.js +429 -0
- package/lib/test/sql/core/decimal.test.d.ts +2 -0
- package/lib/test/sql/core/decimal.test.d.ts.map +1 -0
- package/lib/test/sql/core/decimal.test.js +153 -0
- package/lib/test/sql/core/queryTables.test.d.ts +2 -0
- package/lib/test/sql/core/queryTables.test.d.ts.map +1 -0
- package/lib/test/sql/core/queryTables.test.js +506 -0
- package/lib/test/sql/core/schemaless.test.d.ts +2 -0
- package/lib/test/sql/core/schemaless.test.d.ts.map +1 -0
- package/lib/test/sql/core/schemaless.test.js +102 -0
- package/lib/test/sql/core/sql.test.d.ts +2 -0
- package/lib/test/sql/core/sql.test.d.ts.map +1 -0
- package/lib/test/sql/core/sql.test.js +324 -0
- package/lib/test/sql/decimal.test.d.ts +2 -0
- package/lib/test/sql/decimal.test.d.ts.map +1 -0
- package/lib/test/sql/decimal.test.js +153 -0
- package/lib/test/sql/failover/sql.failover.test.d.ts +2 -0
- package/lib/test/sql/failover/sql.failover.test.d.ts.map +1 -0
- package/lib/test/sql/failover/sql.failover.test.js +341 -0
- package/lib/test/sql/queryTables.test.d.ts +2 -0
- package/lib/test/sql/queryTables.test.d.ts.map +1 -0
- package/lib/test/sql/queryTables.test.js +506 -0
- package/lib/test/sql/schemaless.test.d.ts +2 -0
- package/lib/test/sql/schemaless.test.d.ts.map +1 -0
- package/lib/test/sql/schemaless.test.js +102 -0
- package/lib/test/sql/sql.failover.test.d.ts +2 -0
- package/lib/test/sql/sql.failover.test.d.ts.map +1 -0
- package/lib/test/sql/sql.failover.test.js +341 -0
- package/lib/test/sql/sql.test.d.ts +2 -0
- package/lib/test/sql/sql.test.d.ts.map +1 -0
- package/lib/test/sql/sql.test.js +324 -0
- package/lib/test/stmt/failover/stmt2.failover.mock.test.d.ts +2 -0
- package/lib/test/stmt/failover/stmt2.failover.mock.test.d.ts.map +1 -0
- package/lib/test/stmt/failover/stmt2.failover.mock.test.js +341 -0
- package/lib/test/stmt/failover/stmt2.failover.test.d.ts +2 -0
- package/lib/test/stmt/failover/stmt2.failover.test.d.ts.map +1 -0
- package/lib/test/stmt/failover/stmt2.failover.test.js +384 -0
- package/lib/test/stmt/stmt1.func.test.d.ts +2 -0
- package/lib/test/stmt/stmt1.func.test.d.ts.map +1 -0
- package/lib/test/stmt/stmt1.func.test.js +418 -0
- package/lib/test/stmt/stmt1.type.test.d.ts +2 -0
- package/lib/test/stmt/stmt1.type.test.d.ts.map +1 -0
- package/lib/test/stmt/stmt1.type.test.js +399 -0
- package/lib/test/stmt/stmt2.failover.mock.test.d.ts +2 -0
- package/lib/test/stmt/stmt2.failover.mock.test.d.ts.map +1 -0
- package/lib/test/stmt/stmt2.failover.mock.test.js +341 -0
- package/lib/test/stmt/stmt2.failover.test.d.ts +2 -0
- package/lib/test/stmt/stmt2.failover.test.d.ts.map +1 -0
- package/lib/test/stmt/stmt2.failover.test.js +384 -0
- package/lib/test/stmt/stmt2.func.test.d.ts +2 -0
- package/lib/test/stmt/stmt2.func.test.d.ts.map +1 -0
- package/lib/test/stmt/stmt2.func.test.js +537 -0
- package/lib/test/stmt/stmt2.type.test.d.ts +2 -0
- package/lib/test/stmt/stmt2.type.test.d.ts.map +1 -0
- package/lib/test/stmt/stmt2.type.test.js +401 -0
- package/lib/test/stmt/v1/stmt1.func.test.d.ts +2 -0
- package/lib/test/stmt/v1/stmt1.func.test.d.ts.map +1 -0
- package/lib/test/stmt/v1/stmt1.func.test.js +418 -0
- package/lib/test/stmt/v1/stmt1.type.test.d.ts +2 -0
- package/lib/test/stmt/v1/stmt1.type.test.d.ts.map +1 -0
- package/lib/test/stmt/v1/stmt1.type.test.js +399 -0
- package/lib/test/stmt/v2/stmt2.func.test.d.ts +2 -0
- package/lib/test/stmt/v2/stmt2.func.test.d.ts.map +1 -0
- package/lib/test/stmt/v2/stmt2.func.test.js +537 -0
- package/lib/test/stmt/v2/stmt2.type.test.d.ts +2 -0
- package/lib/test/stmt/v2/stmt2.type.test.d.ts.map +1 -0
- package/lib/test/stmt/v2/stmt2.type.test.js +401 -0
- package/lib/test/tmq/cloud/cloud.tmq.test.d.ts +2 -0
- package/lib/test/tmq/cloud/cloud.tmq.test.d.ts.map +1 -0
- package/lib/test/tmq/cloud/cloud.tmq.test.js +84 -0
- package/lib/test/tmq/cloud/tmq.cloud.test.d.ts +2 -0
- package/lib/test/tmq/cloud/tmq.cloud.test.d.ts.map +1 -0
- package/lib/test/tmq/cloud/tmq.cloud.test.js +82 -0
- package/lib/test/tmq/core/tmq.config.test.d.ts +2 -0
- package/lib/test/tmq/core/tmq.config.test.d.ts.map +1 -0
- package/lib/test/tmq/core/tmq.config.test.js +83 -0
- package/lib/test/tmq/core/tmq.test.d.ts +2 -0
- package/lib/test/tmq/core/tmq.test.d.ts.map +1 -0
- package/lib/test/tmq/core/tmq.test.js +513 -0
- package/lib/test/tmq/failover/tmq.failover.test.d.ts +2 -0
- package/lib/test/tmq/failover/tmq.failover.test.d.ts.map +1 -0
- package/lib/test/tmq/failover/tmq.failover.test.js +404 -0
- package/lib/test/tmq/tmq.cloud.test.d.ts +2 -0
- package/lib/test/tmq/tmq.cloud.test.d.ts.map +1 -0
- package/lib/test/tmq/tmq.cloud.test.js +82 -0
- package/lib/test/tmq/tmq.config.test.d.ts +2 -0
- package/lib/test/tmq/tmq.config.test.d.ts.map +1 -0
- package/lib/test/tmq/tmq.config.test.js +94 -0
- package/lib/test/tmq/tmq.failover.test.d.ts +2 -0
- package/lib/test/tmq/tmq.failover.test.d.ts.map +1 -0
- package/lib/test/tmq/tmq.failover.test.js +404 -0
- package/lib/test/tmq/tmq.test.d.ts +2 -0
- package/lib/test/tmq/tmq.test.d.ts.map +1 -0
- package/lib/test/tmq/tmq.test.js +513 -0
- package/lib/test/unit/connectionManager.test.d.ts +2 -0
- package/lib/test/unit/connectionManager.test.d.ts.map +1 -0
- package/lib/test/unit/connectionManager.test.js +91 -0
- package/package.json +1 -1
- package/readme.md +2 -2
package/lib/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tdengine/websocket",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"description": "The websocket Node.js connector for TDengine. TDengine versions 3.3.2.0 and above are recommended to use this connector.",
|
|
5
5
|
"source": "index.ts",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -1,26 +1,42 @@
|
|
|
1
|
+
import type { SessionRecoveryHook } from "./wsConnector";
|
|
2
|
+
import { Dsn } from "../common/dsn";
|
|
1
3
|
import { WSQueryResponse } from "./wsResponse";
|
|
2
4
|
import { TSDB_OPTION_CONNECTION } from "../common/constant";
|
|
3
5
|
export declare class WsClient {
|
|
4
6
|
private _wsConnector?;
|
|
5
7
|
private _timeout?;
|
|
6
8
|
private _timezone?;
|
|
7
|
-
private readonly
|
|
9
|
+
private readonly _dsn;
|
|
8
10
|
private static readonly _minVersion;
|
|
9
11
|
private _version?;
|
|
10
12
|
private _bearerToken?;
|
|
11
|
-
|
|
13
|
+
private _connectedDatabase;
|
|
14
|
+
private _connectionOptions;
|
|
15
|
+
private _customRecoveryHook;
|
|
16
|
+
constructor(dsn: Dsn, timeout?: number | undefined | null);
|
|
17
|
+
private buildConnMessage;
|
|
18
|
+
private getWsConnector;
|
|
19
|
+
private bindReconnectRecoveryHook;
|
|
20
|
+
private isSqlPath;
|
|
21
|
+
private normalizeConnectedDatabase;
|
|
22
|
+
private recoverSqlSessionContext;
|
|
23
|
+
setSessionRecoveryHook(hook: SessionRecoveryHook | null | undefined): void;
|
|
12
24
|
connect(database?: string | undefined | null): Promise<void>;
|
|
13
25
|
setOptionConnection(option: TSDB_OPTION_CONNECTION, value: string | null): Promise<void>;
|
|
14
|
-
execNoResp(
|
|
15
|
-
exec(
|
|
26
|
+
execNoResp(message: string): Promise<void>;
|
|
27
|
+
exec(message: string, bSqlQuery?: boolean): Promise<any>;
|
|
28
|
+
sendMsgDirect(message: string, bSqlQuery?: boolean): Promise<any>;
|
|
16
29
|
sendBinaryMsg(reqId: bigint, action: string, message: ArrayBuffer, bSqlQuery?: boolean, bResultBinary?: boolean): Promise<any>;
|
|
17
30
|
getState(): number;
|
|
18
31
|
ready(): Promise<void>;
|
|
19
|
-
|
|
20
|
-
|
|
32
|
+
waitForReady(): Promise<void>;
|
|
33
|
+
isNetworkError(err: unknown): boolean;
|
|
34
|
+
getReconnectRetries(): number;
|
|
35
|
+
sendMsg(message: string): Promise<any>;
|
|
36
|
+
freeResult(res: WSQueryResponse): Promise<void>;
|
|
21
37
|
version(): Promise<string>;
|
|
22
38
|
close(): Promise<void>;
|
|
23
|
-
|
|
39
|
+
private checkAuth;
|
|
24
40
|
checkVersion(): Promise<void>;
|
|
25
41
|
}
|
|
26
42
|
//# sourceMappingURL=wsClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wsClient.d.ts","sourceRoot":"","sources":["../../../src/client/wsClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wsClient.d.ts","sourceRoot":"","sources":["../../../src/client/wsClient.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,GAAG,EAAmB,MAAM,eAAe,CAAC;AAOrD,OAAO,EAAqB,eAAe,EAAE,MAAM,cAAc,CAAC;AASlE,OAAO,EAEH,sBAAsB,EACzB,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,QAAQ;IACjB,OAAO,CAAC,YAAY,CAAC,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,CAA4B;IAC7C,OAAO,CAAC,SAAS,CAAC,CAA4B;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAM;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAa;IAChD,OAAO,CAAC,QAAQ,CAAC,CAA4B;IAC7C,OAAO,CAAC,YAAY,CAAC,CAA4B;IACjD,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,kBAAkB,CAAyD;IACnF,OAAO,CAAC,mBAAmB,CAAoC;gBAEnD,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAYzD,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,0BAA0B;YAOpB,wBAAwB;IA6B/B,sBAAsB,CACzB,IAAI,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAC7C,IAAI;IAKD,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC5D,mBAAmB,CAAC,MAAM,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBxF,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,OAAc,GAAG,OAAO,CAAC,GAAG,CAAC;IAmB9D,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,OAAc,GAAG,OAAO,CAAC,GAAG,CAAC;IAmBvE,aAAa,CACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,SAAS,GAAE,OAAc,EACzB,aAAa,GAAE,OAAe,GAC/B,OAAO,CAAC,GAAG,CAAC;IAmBf,QAAQ;IAOF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BtB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAIrC,mBAAmB,IAAI,MAAM;IAIvB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAKtC,UAAU,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/C,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAiC1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAW5B,OAAO,CAAC,SAAS;IAYX,YAAY;CAarB"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.WsClient = void 0;
|
|
7
7
|
const json_bigint_1 = __importDefault(require("json-bigint"));
|
|
8
8
|
const wsConnectorPool_1 = require("./wsConnectorPool");
|
|
9
|
+
const dsn_1 = require("../common/dsn");
|
|
9
10
|
const wsError_1 = require("../common/wsError");
|
|
10
11
|
const wsResponse_1 = require("./wsResponse");
|
|
11
12
|
const reqid_1 = require("../common/reqid");
|
|
@@ -14,42 +15,104 @@ const utils_1 = require("../common/utils");
|
|
|
14
15
|
const websocket_1 = require("websocket");
|
|
15
16
|
const constant_1 = require("../common/constant");
|
|
16
17
|
class WsClient {
|
|
17
|
-
constructor(
|
|
18
|
-
this.
|
|
19
|
-
this.
|
|
18
|
+
constructor(dsn, timeout) {
|
|
19
|
+
this._connectedDatabase = null;
|
|
20
|
+
this._connectionOptions = new Map();
|
|
21
|
+
this._customRecoveryHook = null;
|
|
22
|
+
this.checkAuth(dsn);
|
|
23
|
+
this._dsn = dsn;
|
|
20
24
|
this._timeout = timeout;
|
|
21
|
-
if (this.
|
|
22
|
-
this._timezone = this.
|
|
23
|
-
this._url.searchParams.delete("timezone");
|
|
25
|
+
if (this._dsn.params.has("timezone")) {
|
|
26
|
+
this._timezone = this._dsn.params.get("timezone") || undefined;
|
|
24
27
|
}
|
|
25
|
-
if (this.
|
|
26
|
-
this._bearerToken = this.
|
|
28
|
+
if (this._dsn.params.has("bearer_token")) {
|
|
29
|
+
this._bearerToken = this._dsn.params.get("bearer_token") || undefined;
|
|
27
30
|
}
|
|
28
31
|
}
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
buildConnMessage(database) {
|
|
33
|
+
return {
|
|
31
34
|
action: "conn",
|
|
32
35
|
args: {
|
|
33
36
|
req_id: reqid_1.ReqId.getReqID(),
|
|
34
|
-
user: (0, utils_1.safeDecodeURIComponent)(this.
|
|
35
|
-
password: (0, utils_1.safeDecodeURIComponent)(this.
|
|
37
|
+
user: (0, utils_1.safeDecodeURIComponent)(this._dsn.username),
|
|
38
|
+
password: (0, utils_1.safeDecodeURIComponent)(this._dsn.password),
|
|
36
39
|
db: database,
|
|
37
40
|
connector: constant_1.ConnectorInfo,
|
|
38
41
|
...(this._timezone && { tz: this._timezone }),
|
|
39
42
|
...(this._bearerToken && { bearer_token: this._bearerToken }),
|
|
40
43
|
},
|
|
41
44
|
};
|
|
45
|
+
}
|
|
46
|
+
getWsConnector() {
|
|
47
|
+
if (!this._wsConnector) {
|
|
48
|
+
throw new wsError_1.TDWebSocketClientError(wsError_1.ErrorCode.ERR_CONNECTION_CLOSED, "Invalid websocket connection");
|
|
49
|
+
}
|
|
50
|
+
return this._wsConnector;
|
|
51
|
+
}
|
|
52
|
+
bindReconnectRecoveryHook() {
|
|
53
|
+
if (!this._wsConnector) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
this._wsConnector.setSessionRecoveryHook(async () => {
|
|
57
|
+
if (this.isSqlPath()) {
|
|
58
|
+
await this.recoverSqlSessionContext();
|
|
59
|
+
}
|
|
60
|
+
if (this._customRecoveryHook) {
|
|
61
|
+
await this._customRecoveryHook();
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
isSqlPath() {
|
|
66
|
+
return this._dsn.endpoint === dsn_1.WS_SQL_ENDPOINT;
|
|
67
|
+
}
|
|
68
|
+
normalizeConnectedDatabase(database) {
|
|
69
|
+
if (database && database.length > 0) {
|
|
70
|
+
return database;
|
|
71
|
+
}
|
|
72
|
+
return this.isSqlPath() ? "information_schema" : null;
|
|
73
|
+
}
|
|
74
|
+
async recoverSqlSessionContext() {
|
|
75
|
+
if (!this._wsConnector) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const connMsg = this.buildConnMessage(this.normalizeConnectedDatabase(this._connectedDatabase));
|
|
79
|
+
await this.sendMsgDirect(JSON.stringify(connMsg), false);
|
|
80
|
+
if (this._connectionOptions.size <= 0) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const options = Array.from(this._connectionOptions.entries()).map(([option, value]) => ({
|
|
84
|
+
option,
|
|
85
|
+
value,
|
|
86
|
+
}));
|
|
87
|
+
const optionsMsg = {
|
|
88
|
+
action: "options_connection",
|
|
89
|
+
args: {
|
|
90
|
+
req_id: reqid_1.ReqId.getReqID(),
|
|
91
|
+
options,
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
await this.sendMsgDirect(json_bigint_1.default.stringify(optionsMsg), false);
|
|
95
|
+
}
|
|
96
|
+
setSessionRecoveryHook(hook) {
|
|
97
|
+
this._customRecoveryHook = hook || null;
|
|
98
|
+
this.bindReconnectRecoveryHook();
|
|
99
|
+
}
|
|
100
|
+
async connect(database) {
|
|
101
|
+
const connMsg = this.buildConnMessage(database);
|
|
42
102
|
if (log_1.default.isDebugEnabled()) {
|
|
43
103
|
log_1.default.debug("[wsClient.connect.connMsg]===>" + json_bigint_1.default.stringify(connMsg, (key, value) => (key === "password" || key === "bearer_token") ? "[REDACTED]" : value));
|
|
44
104
|
}
|
|
45
|
-
this._wsConnector = await wsConnectorPool_1.WebSocketConnectionPool.instance().getConnection(this.
|
|
105
|
+
this._wsConnector = await wsConnectorPool_1.WebSocketConnectionPool.instance().getConnection(this._dsn, this._timeout);
|
|
106
|
+
this.bindReconnectRecoveryHook();
|
|
46
107
|
if (this._wsConnector.readyState() === websocket_1.w3cwebsocket.OPEN) {
|
|
108
|
+
this._connectedDatabase = this.normalizeConnectedDatabase(database ?? null);
|
|
47
109
|
return;
|
|
48
110
|
}
|
|
49
111
|
try {
|
|
50
112
|
await this._wsConnector.ready();
|
|
51
113
|
let result = await this._wsConnector.sendMsg(JSON.stringify(connMsg));
|
|
52
114
|
if (result.msg.code == 0) {
|
|
115
|
+
this._connectedDatabase = this.normalizeConnectedDatabase(database ?? null);
|
|
53
116
|
return;
|
|
54
117
|
}
|
|
55
118
|
await this.close();
|
|
@@ -57,9 +120,8 @@ class WsClient {
|
|
|
57
120
|
}
|
|
58
121
|
catch (e) {
|
|
59
122
|
await this.close();
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
throw new wsError_1.TDWebSocketClientError(wsError_1.ErrorCode.ERR_WEBSOCKET_CONNECTION_FAIL, `connection creation failed, url: ${maskedUrl}, code:${e.code}, msg:${e.message}`);
|
|
123
|
+
log_1.default.error(`connection creation failed, dsn:${this._dsn}, code:${e.code}, msg:${e.message}`);
|
|
124
|
+
throw new wsError_1.TDWebSocketClientError(wsError_1.ErrorCode.ERR_WEBSOCKET_CONNECTION_FAIL, `connection creation failed, dsn:${this._dsn}, code:${e.code}, msg:${e.message}`);
|
|
63
125
|
}
|
|
64
126
|
}
|
|
65
127
|
async setOptionConnection(option, value) {
|
|
@@ -78,84 +140,55 @@ class WsClient {
|
|
|
78
140
|
};
|
|
79
141
|
try {
|
|
80
142
|
await this.exec(json_bigint_1.default.stringify(connMsg), false);
|
|
143
|
+
this._connectionOptions.set(option, value);
|
|
81
144
|
}
|
|
82
145
|
catch (e) {
|
|
83
146
|
log_1.default.error("[wsClient.setOptionConnection] failed: " + e.message);
|
|
84
147
|
throw e;
|
|
85
148
|
}
|
|
86
149
|
}
|
|
87
|
-
async execNoResp(
|
|
88
|
-
log_1.default.debug("[
|
|
89
|
-
|
|
90
|
-
this._wsConnector.readyState() === websocket_1.w3cwebsocket.OPEN) {
|
|
91
|
-
await this._wsConnector.sendMsgNoResp(queryMsg);
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
throw new wsError_1.TDWebSocketClientError(wsError_1.ErrorCode.ERR_CONNECTION_CLOSED, "invalid websocket connect");
|
|
150
|
+
async execNoResp(message) {
|
|
151
|
+
log_1.default.debug("[wsClient.execNoResp]===>" + message);
|
|
152
|
+
await this.getWsConnector().sendMsgNoResp(message);
|
|
95
153
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
if (
|
|
103
|
-
|
|
104
|
-
this._wsConnector
|
|
105
|
-
.sendMsg(queryMsg)
|
|
106
|
-
.then((e) => {
|
|
107
|
-
if (e.msg.code == 0) {
|
|
108
|
-
if (bSqlQuery) {
|
|
109
|
-
resolve(new wsResponse_1.WSQueryResponse(e));
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
resolve(e);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
reject(new wsError_1.WebSocketInterfaceError(e.msg.code, e.msg.message));
|
|
117
|
-
}
|
|
118
|
-
})
|
|
119
|
-
.catch((e) => {
|
|
120
|
-
reject(e);
|
|
121
|
-
});
|
|
154
|
+
async exec(message, bSqlQuery = true) {
|
|
155
|
+
if (log_1.default.isDebugEnabled()) {
|
|
156
|
+
log_1.default.debug("[wsClient.exec]===>" + (0, utils_1.maskSensitiveForLog)(message));
|
|
157
|
+
}
|
|
158
|
+
const resp = await this.getWsConnector().sendMsg(message);
|
|
159
|
+
if (resp.msg.code == 0) {
|
|
160
|
+
if (bSqlQuery) {
|
|
161
|
+
return new wsResponse_1.WSQueryResponse(resp);
|
|
122
162
|
}
|
|
123
|
-
|
|
124
|
-
|
|
163
|
+
return resp;
|
|
164
|
+
}
|
|
165
|
+
throw new wsError_1.WebSocketInterfaceError(resp.msg.code, resp.msg.message);
|
|
166
|
+
}
|
|
167
|
+
async sendMsgDirect(message, bSqlQuery = true) {
|
|
168
|
+
if (log_1.default.isDebugEnabled()) {
|
|
169
|
+
log_1.default.debug("[wsClient.sendMsgDirect]===>" + (0, utils_1.maskSensitiveForLog)(message));
|
|
170
|
+
}
|
|
171
|
+
const resp = await this.getWsConnector().sendMsgDirect(message);
|
|
172
|
+
if (resp.msg.code == 0) {
|
|
173
|
+
if (bSqlQuery) {
|
|
174
|
+
return new wsResponse_1.WSQueryResponse(resp);
|
|
125
175
|
}
|
|
126
|
-
|
|
176
|
+
return resp;
|
|
177
|
+
}
|
|
178
|
+
throw new wsError_1.WebSocketQueryError(resp.msg.code, resp.msg.message);
|
|
127
179
|
}
|
|
128
|
-
// need to construct Response.
|
|
129
180
|
async sendBinaryMsg(reqId, action, message, bSqlQuery = true, bResultBinary = false) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
resolve(e);
|
|
138
|
-
}
|
|
139
|
-
if (e.msg.code == 0) {
|
|
140
|
-
if (bSqlQuery) {
|
|
141
|
-
resolve(new wsResponse_1.WSQueryResponse(e));
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
resolve(e);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
reject(new wsError_1.WebSocketInterfaceError(e.msg.code, e.msg.message));
|
|
149
|
-
}
|
|
150
|
-
})
|
|
151
|
-
.catch((e) => {
|
|
152
|
-
reject(e);
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
else {
|
|
156
|
-
reject(new wsError_1.TDWebSocketClientError(wsError_1.ErrorCode.ERR_CONNECTION_CLOSED, "invalid websocket connect"));
|
|
181
|
+
const resp = await this.getWsConnector().sendBinaryMsg(reqId, action, message);
|
|
182
|
+
if (bResultBinary) {
|
|
183
|
+
return resp;
|
|
184
|
+
}
|
|
185
|
+
if (resp.msg.code == 0) {
|
|
186
|
+
if (bSqlQuery) {
|
|
187
|
+
return new wsResponse_1.WSQueryResponse(resp);
|
|
157
188
|
}
|
|
158
|
-
|
|
189
|
+
return resp;
|
|
190
|
+
}
|
|
191
|
+
throw new wsError_1.WebSocketInterfaceError(resp.msg.code, resp.msg.message);
|
|
159
192
|
}
|
|
160
193
|
getState() {
|
|
161
194
|
if (this._wsConnector) {
|
|
@@ -165,62 +198,45 @@ class WsClient {
|
|
|
165
198
|
}
|
|
166
199
|
async ready() {
|
|
167
200
|
try {
|
|
168
|
-
this._wsConnector = await wsConnectorPool_1.WebSocketConnectionPool.instance().getConnection(this.
|
|
201
|
+
this._wsConnector = await wsConnectorPool_1.WebSocketConnectionPool.instance().getConnection(this._dsn, this._timeout);
|
|
202
|
+
this.bindReconnectRecoveryHook();
|
|
169
203
|
if (this._wsConnector.readyState() !== websocket_1.w3cwebsocket.OPEN) {
|
|
170
204
|
await this._wsConnector.ready();
|
|
171
205
|
}
|
|
172
206
|
if (log_1.default.isDebugEnabled()) {
|
|
173
|
-
log_1.default.debug(
|
|
207
|
+
log_1.default.debug(`ready status, dsn: ${this._dsn}, state: ${this._wsConnector.readyState()}`);
|
|
174
208
|
}
|
|
175
209
|
return;
|
|
176
210
|
}
|
|
177
211
|
catch (e) {
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
throw new wsError_1.TDWebSocketClientError(wsError_1.ErrorCode.ERR_WEBSOCKET_CONNECTION_FAIL, `connection creation failed, url: ${maskedUrl}, code: ${e.code}, message: ${e.message}`);
|
|
212
|
+
log_1.default.error(`connection creation failed, dsn: ${this._dsn}, code: ${e.code}, message: ${e.message}`);
|
|
213
|
+
throw new wsError_1.TDWebSocketClientError(wsError_1.ErrorCode.ERR_WEBSOCKET_CONNECTION_FAIL, `connection creation failed, dsn: ${this._dsn}, code: ${e.code}, message: ${e.message}`);
|
|
181
214
|
}
|
|
182
215
|
}
|
|
183
|
-
async
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
else {
|
|
196
|
-
reject(new wsError_1.TDWebSocketClientError(wsError_1.ErrorCode.ERR_CONNECTION_CLOSED, "invalid websocket connect"));
|
|
197
|
-
}
|
|
198
|
-
});
|
|
216
|
+
async waitForReady() {
|
|
217
|
+
await this.getWsConnector().ready();
|
|
218
|
+
}
|
|
219
|
+
isNetworkError(err) {
|
|
220
|
+
return this.getWsConnector().isNetworkError(err);
|
|
221
|
+
}
|
|
222
|
+
getReconnectRetries() {
|
|
223
|
+
return this.getWsConnector().getReconnectRetries();
|
|
224
|
+
}
|
|
225
|
+
async sendMsg(message) {
|
|
226
|
+
log_1.default.debug("[wsClient.sendMsg]===>" + message);
|
|
227
|
+
return this.getWsConnector().sendMsg(message);
|
|
199
228
|
}
|
|
200
229
|
async freeResult(res) {
|
|
201
|
-
|
|
230
|
+
const freeResultMsg = {
|
|
202
231
|
action: "free_result",
|
|
203
232
|
args: {
|
|
204
233
|
req_id: reqid_1.ReqId.getReqID(),
|
|
205
234
|
id: res.id,
|
|
206
235
|
},
|
|
207
236
|
};
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
if (this._wsConnector &&
|
|
212
|
-
this._wsConnector.readyState() === websocket_1.w3cwebsocket.OPEN) {
|
|
213
|
-
this._wsConnector
|
|
214
|
-
.sendMsgNoResp(jsonStr)
|
|
215
|
-
.then((e) => {
|
|
216
|
-
resolve(e);
|
|
217
|
-
})
|
|
218
|
-
.catch((e) => reject(e));
|
|
219
|
-
}
|
|
220
|
-
else {
|
|
221
|
-
reject(new wsError_1.TDWebSocketClientError(wsError_1.ErrorCode.ERR_CONNECTION_CLOSED, "invalid websocket connect"));
|
|
222
|
-
}
|
|
223
|
-
});
|
|
237
|
+
const jsonStr = json_bigint_1.default.stringify(freeResultMsg);
|
|
238
|
+
log_1.default.debug("[wsClient.freeResult]===>" + jsonStr);
|
|
239
|
+
await this.getWsConnector().sendMsgNoResp(jsonStr);
|
|
224
240
|
}
|
|
225
241
|
async version() {
|
|
226
242
|
if (this._version) {
|
|
@@ -232,35 +248,34 @@ class WsClient {
|
|
|
232
248
|
req_id: reqid_1.ReqId.getReqID(),
|
|
233
249
|
},
|
|
234
250
|
};
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
}
|
|
240
|
-
let result = await this._wsConnector.sendMsg(json_bigint_1.default.stringify(versionMsg));
|
|
241
|
-
if (result.msg.code == 0) {
|
|
242
|
-
return new wsResponse_1.WSVersionResponse(result).version;
|
|
243
|
-
}
|
|
244
|
-
throw new wsError_1.WebSocketInterfaceError(result.msg.code, result.msg.message);
|
|
251
|
+
try {
|
|
252
|
+
const connector = this.getWsConnector();
|
|
253
|
+
if (connector.readyState() !== websocket_1.w3cwebsocket.OPEN) {
|
|
254
|
+
await connector.ready();
|
|
245
255
|
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
throw new wsError_1.TDWebSocketClientError(wsError_1.ErrorCode.ERR_WEBSOCKET_CONNECTION_FAIL, `connection creation failed, url: ${maskedUrl}, code: ${e.code}, message: ${e.message}`);
|
|
256
|
+
let result = await connector.sendMsg(json_bigint_1.default.stringify(versionMsg));
|
|
257
|
+
if (result.msg.code == 0) {
|
|
258
|
+
return new wsResponse_1.WSVersionResponse(result).version;
|
|
250
259
|
}
|
|
260
|
+
throw new wsError_1.WebSocketInterfaceError(result.msg.code, result.msg.message);
|
|
261
|
+
}
|
|
262
|
+
catch (e) {
|
|
263
|
+
log_1.default.error(`connection creation failed, dsn: ${this._dsn}, code: ${e.code}, message: ${e.message}`);
|
|
264
|
+
throw new wsError_1.TDWebSocketClientError(wsError_1.ErrorCode.ERR_WEBSOCKET_CONNECTION_FAIL, `connection creation failed, dsn: ${this._dsn}, code: ${e.code}, message: ${e.message}`);
|
|
251
265
|
}
|
|
252
|
-
throw (wsError_1.ErrorCode.ERR_CONNECTION_CLOSED, "invalid websocket connect");
|
|
253
266
|
}
|
|
254
267
|
async close() {
|
|
255
268
|
if (this._wsConnector) {
|
|
269
|
+
this._wsConnector.setSessionRecoveryHook(null);
|
|
256
270
|
await wsConnectorPool_1.WebSocketConnectionPool.instance().releaseConnection(this._wsConnector);
|
|
257
271
|
this._wsConnector = undefined;
|
|
258
272
|
}
|
|
273
|
+
this._customRecoveryHook = null;
|
|
259
274
|
}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
if (!
|
|
263
|
-
if (!(
|
|
275
|
+
checkAuth(dsn) {
|
|
276
|
+
const hasToken = dsn.params.get("token") || dsn.params.get("bearer_token");
|
|
277
|
+
if (!hasToken) {
|
|
278
|
+
if (!(dsn.username || dsn.password)) {
|
|
264
279
|
throw new wsError_1.WebSocketInterfaceError(wsError_1.ErrorCode.ERR_INVALID_AUTHENTICATION, `invalid url, provide non-empty "token" or "bearer_token", or provide username/password`);
|
|
265
280
|
}
|
|
266
281
|
}
|
|
@@ -1,16 +1,62 @@
|
|
|
1
|
+
import { Dsn } from "../common/dsn";
|
|
2
|
+
export type SessionRecoveryHook = () => Promise<void>;
|
|
3
|
+
export declare class RetryConfig {
|
|
4
|
+
readonly retries: number;
|
|
5
|
+
readonly retryBackoffMs: number;
|
|
6
|
+
readonly retryBackoffMaxMs: number;
|
|
7
|
+
constructor(retries: number, retryBackoffMs: number, retryBackoffMaxMs: number);
|
|
8
|
+
getBackoffDelay(attempt: number): number;
|
|
9
|
+
static fromDsn(dsn: Dsn): RetryConfig;
|
|
10
|
+
}
|
|
1
11
|
export declare class WebSocketConnector {
|
|
2
|
-
private
|
|
3
|
-
private
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
private
|
|
12
|
+
private _conn;
|
|
13
|
+
private readonly _poolKey;
|
|
14
|
+
private readonly _dsn;
|
|
15
|
+
private _currentAddress;
|
|
16
|
+
private _retryConfig;
|
|
17
|
+
private _inflightStore;
|
|
18
|
+
private readonly _suppressedSockets;
|
|
19
|
+
private _reconnectLock;
|
|
20
|
+
private _isReconnecting;
|
|
21
|
+
private _allowReconnect;
|
|
22
|
+
private _connectionReady;
|
|
23
|
+
private _sessionRecoveryHook;
|
|
24
|
+
private _timeout;
|
|
25
|
+
constructor(dsn: Dsn, poolKey: string, timeout: number | undefined | null);
|
|
26
|
+
refreshRetryConfig(dsn: Dsn): void;
|
|
27
|
+
private buildUrl;
|
|
28
|
+
private createConnection;
|
|
8
29
|
private _onmessage;
|
|
30
|
+
private shouldSkipReconnect;
|
|
31
|
+
private failNonRetriableCallbacksOnDisconnect;
|
|
32
|
+
private handleDisconnect;
|
|
33
|
+
private extractReqId;
|
|
34
|
+
private isRetriableAction;
|
|
35
|
+
private extractBinaryAction;
|
|
36
|
+
private isRetriableBinaryAction;
|
|
37
|
+
isNetworkError(err: unknown): boolean;
|
|
38
|
+
private send;
|
|
39
|
+
ready(): Promise<void>;
|
|
40
|
+
private getCurrentAddress;
|
|
41
|
+
private selectLeastConnectedAddress;
|
|
42
|
+
private sleep;
|
|
43
|
+
private isReconnectAllowed;
|
|
44
|
+
private triggerReconnect;
|
|
45
|
+
private _doReconnect;
|
|
46
|
+
private reconnect;
|
|
47
|
+
private attemptReconnect;
|
|
48
|
+
private replayRequests;
|
|
49
|
+
private failAllInflightRequests;
|
|
9
50
|
close(): void;
|
|
10
51
|
readyState(): number;
|
|
52
|
+
setSessionRecoveryHook(hook: SessionRecoveryHook | undefined | null): void;
|
|
53
|
+
private recoverSessionContext;
|
|
54
|
+
sendMsgDirect(message: string): Promise<any>;
|
|
11
55
|
sendMsgNoResp(message: string): Promise<void>;
|
|
12
|
-
sendMsg(message: string
|
|
13
|
-
sendBinaryMsg(reqId: bigint, action: string, message: ArrayBuffer
|
|
14
|
-
|
|
56
|
+
sendMsg(message: string): Promise<unknown>;
|
|
57
|
+
sendBinaryMsg(reqId: bigint, action: string, message: ArrayBuffer): Promise<unknown>;
|
|
58
|
+
private sendAndTrackResponse;
|
|
59
|
+
getPoolKey(): string;
|
|
60
|
+
getReconnectRetries(): number;
|
|
15
61
|
}
|
|
16
62
|
//# sourceMappingURL=wsConnector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wsConnector.d.ts","sourceRoot":"","sources":["../../../src/client/wsConnector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wsConnector.d.ts","sourceRoot":"","sources":["../../../src/client/wsConnector.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,GAAG,EAAE,MAAM,eAAe,CAAC;AA0D7C,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AA0DtD,qBAAa,WAAW;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;gBAEvB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM;IAM9E,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAOxC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW;CAexC;AAED,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAM;IAC3B,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwC;IAC3E,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,gBAAgB,CAAoC;IAC5D,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,QAAQ,CAAS;gBAGrB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAoB/B,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAIzC,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,gBAAgB;IAmExB,OAAO,CAAC,UAAU;IA0BlB,OAAO,CAAC,mBAAmB;YAOb,qCAAqC;YAcrC,gBAAgB;IAkB9B,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,uBAAuB;IAIxB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IA4B5C,OAAO,CAAC,IAAI;IAcN,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB5B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,2BAA2B;YAWrB,KAAK;IAInB,OAAO,CAAC,kBAAkB;YAIZ,gBAAgB;YAkBhB,YAAY;YAkBZ,SAAS;YAUT,gBAAgB;YAsChB,cAAc;IAiB5B,OAAO,CAAC,uBAAuB;IAO/B,KAAK;IAiBL,UAAU,IAAI,MAAM;IAIb,sBAAsB,CACzB,IAAI,EAAE,mBAAmB,GAAG,SAAS,GAAG,IAAI,GAC7C,IAAI;YAIO,qBAAqB;IAOtB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAmCnD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ7C,OAAO,CAAC,OAAO,EAAE,MAAM;IAgBvB,aAAa,CACf,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW;YAWV,oBAAoB;IAgF3B,UAAU,IAAI,MAAM;IAIpB,mBAAmB,IAAI,MAAM;CAGvC"}
|