Skip to content

Commit 20e4152

Browse files
authored
fix: add freeResult asynchronous waiting and modify version (#86)
* fix: clear invalid connections from the connection pool * fix: fix connection pool allocation with unavailable connections * fix: modify cloud tmq case for insert data * fix: delete invalid code * fix: add config params test * fix: add config url params test * fix: Delete invalid connection classes * fix: use w3cwebsocket.OPEN for status judgment * fix: add freeResult asynchronous waiting * fix: modify version * fix: modify freeResult request send
1 parent 8c7a6ce commit 20e4152

7 files changed

Lines changed: 20 additions & 14 deletions

File tree

nodejs/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

nodejs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@tdengine/websocket",
3-
"version": "3.1.7",
3+
"version": "3.1.8",
44
"description": "The websocket Node.js connector for TDengine. TDengine versions 3.3.2.0 and above are recommended to use this connector.",
55
"source": "index.ts",
66
"main": "lib/index.js",

nodejs/src/client/wsClient.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ export class WsClient {
169169
let jsonStr = JSONBig.stringify(freeResultMsg);
170170
logger.debug("[wsQueryInterface.freeResult.freeResultMsg]===>" + jsonStr)
171171
if (this._wsConnector && this._wsConnector.readyState() === w3cwebsocket.OPEN) {
172-
this._wsConnector.sendMsg(jsonStr, false)
172+
this._wsConnector.sendMsgNoResp(jsonStr)
173173
.then((e: any) => {resolve(e);})
174174
.catch((e) => reject(e));
175175
} else {

nodejs/src/client/wsConnector.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ export class WebSocketConnector {
116116
timeout:this._timeout, id: msg.args.id === undefined ? msg.args.id : BigInt(msg.args.id) },
117117
resolve, reject);
118118
}
119-
logger.debug("[wsClient.sendMessage.msg]===>\n", message)
119+
logger.debug(`[wsClient.sendMessage.msg]===> ${message}`)
120120
this._wsConn.send(message)
121121
} else {
122122
reject(new WebSocketQueryError(ErrorCode.ERR_WEBSOCKET_CONNECTION_FAIL,

nodejs/src/sql/wsRows.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export class WSRows {
2222

2323
async next(): Promise<boolean> {
2424
if (this._wsQueryResponse.is_update || this._isClose) {
25-
logger.debug("WSRows::Next::End=>", this._taosResult, this._isClose)
25+
logger.debug(`WSRows::Next::End=> ${this._taosResult}, ${this._isClose}`);
2626
return false;
2727
}
2828

@@ -50,7 +50,8 @@ export class WSRows {
5050
this._taosResult.addTotalTime(resp.totalTime)
5151
let wsResponse = new WSFetchBlockResponse(resp.msg);
5252
if (wsResponse.code != 0) {
53-
logger.error("Executing SQL statement returns error: ", wsResponse.code, wsResponse.message);
53+
await this.close();
54+
logger.error(`Executing SQL statement returns error: ${wsResponse.code}, ${wsResponse.message}`);
5455
throw new TaosResultError(wsResponse.code, wsResponse.message);
5556
}
5657

@@ -62,8 +63,12 @@ export class WSRows {
6263
}
6364
}
6465
return this._taosResult;
65-
}catch(err:any){
66-
await this.close();
66+
} catch (err:any){
67+
try {
68+
await this.close();
69+
} catch (closeErr:any) {
70+
logger.error(`GetBlockData encountered an exception while calling the close method, reason: ${closeErr.message}`);
71+
}
6772
throw new TaosResultError(err.code, err.message);
6873
}
6974
}
@@ -91,7 +96,7 @@ export class WSRows {
9196
return
9297
}
9398
this._isClose = true
94-
this._wsClient.freeResult(this._wsQueryResponse)
99+
await this._wsClient.freeResult(this._wsQueryResponse)
95100
}
96101

97102
}

nodejs/src/sql/wsSql.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ export class WsSql{
126126
taosResult.addTotalTime(resp.totalTime)
127127
let wsResponse = new WSFetchBlockResponse(resp.msg);
128128
if (wsResponse.code != 0) {
129-
logger.error("Executing SQL statement returns error: ", wsResponse.code, wsResponse.message);
129+
logger.error(`Executing SQL statement returns error: ${wsResponse.code}, ${wsResponse.message}`);
130130
throw new TaosResultError(wsResponse.code, wsResponse.message);
131131
}
132132

@@ -140,7 +140,7 @@ export class WsSql{
140140
} catch(err: any){
141141
throw new TaosResultError(err.code, err.message);
142142
} finally {
143-
this._wsClient.freeResult(wsQueryResponse)
143+
await this._wsClient.freeResult(wsQueryResponse)
144144
}
145145
}
146146
throw new TaosResultError(ErrorCode.ERR_INVALID_FETCH_MESSAGE_DATA, "The result data of the query is incorrect");

nodejs/test/bulkPulling/stmt.func.test.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import { WebSocketConnectionPool } from "../../src/client/wsConnectorPool";
22
import { WSConfig } from "../../src/common/config";
3+
import { setLevel } from "../../src/common/log";
34
import { WsSql } from "../../src/sql/wsSql";
45
import { Sleep } from "../utils";
56

67
let dns = 'ws://localhost:6041'
7-
8+
setLevel("debug")
89
beforeAll(async () => {
910
let conf :WSConfig = new WSConfig(dns);
1011
conf.setUser('root');
@@ -337,7 +338,7 @@ describe('TDWebSocket.Stmt()', () => {
337338
await stmt.exec()
338339
}catch(e) {
339340
let err:any = e
340-
expect(err.message).toMatch("Retry needed")
341+
expect(err.message).toMatch("Retry needed");
341342
}
342343
await stmt.close()
343344
await connector.close();

0 commit comments

Comments
 (0)