@tdengine/websocket 3.0.0 → 3.1.1
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/example/all_type_query.d.ts +2 -0
- package/lib/example/all_type_query.d.ts.map +1 -0
- package/lib/example/all_type_query.js +89 -0
- package/lib/example/all_type_stmt.d.ts +2 -0
- package/lib/example/all_type_stmt.d.ts.map +1 -0
- package/lib/example/all_type_stmt.js +130 -0
- package/lib/example/basicBatchTmq.d.ts +2 -0
- package/lib/example/basicBatchTmq.d.ts.map +1 -0
- package/lib/example/basicBatchTmq.js +129 -0
- package/lib/example/basicSchemaless.d.ts +2 -0
- package/lib/example/basicSchemaless.d.ts.map +1 -0
- package/lib/example/basicSchemaless.js +47 -0
- package/lib/example/basicSql.d.ts +2 -0
- package/lib/example/basicSql.d.ts.map +1 -0
- package/lib/example/basicSql.js +54 -0
- package/lib/example/basicStmt.d.ts +2 -0
- package/lib/example/basicStmt.d.ts.map +1 -0
- package/lib/example/basicStmt.js +72 -0
- package/lib/example/basicTmq.d.ts +2 -0
- package/lib/example/basicTmq.d.ts.map +1 -0
- package/lib/example/basicTmq.js +73 -0
- package/lib/index.d.ts +26 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +41 -0
- package/lib/src/client/wsClient.d.ts +22 -0
- package/lib/src/client/wsClient.d.ts.map +1 -0
- package/lib/src/client/wsClient.js +256 -0
- package/lib/src/client/wsConnector.d.ts +17 -0
- package/lib/src/client/wsConnector.d.ts.map +1 -0
- package/lib/src/client/wsConnector.js +140 -0
- package/lib/src/client/wsConnectorPool.d.ts +13 -0
- package/lib/src/client/wsConnectorPool.d.ts.map +1 -0
- package/lib/src/client/wsConnectorPool.js +107 -0
- package/lib/src/client/wsEventCallback.d.ts +22 -0
- package/lib/src/client/wsEventCallback.d.ts.map +1 -0
- package/lib/src/client/wsEventCallback.js +97 -0
- package/lib/src/client/wsResponse.d.ts +74 -0
- package/lib/src/client/wsResponse.d.ts.map +1 -0
- package/lib/src/client/wsResponse.js +103 -0
- package/lib/src/common/config.d.ts +22 -0
- package/lib/src/common/config.d.ts.map +1 -0
- package/lib/src/common/config.js +45 -0
- package/lib/src/common/constant.d.ts +35 -0
- package/lib/src/common/constant.d.ts.map +1 -0
- package/lib/src/common/constant.js +78 -0
- package/lib/src/common/log.d.ts +5 -0
- package/lib/src/common/log.d.ts.map +1 -0
- package/lib/src/common/log.js +40 -0
- package/lib/src/common/reqid.d.ts +8 -0
- package/lib/src/common/reqid.d.ts.map +1 -0
- package/lib/src/common/reqid.js +59 -0
- package/lib/src/common/taosResult.d.ts +57 -0
- package/lib/src/common/taosResult.d.ts.map +1 -0
- package/lib/src/common/taosResult.js +449 -0
- package/lib/src/common/ut8Helper.d.ts +2 -0
- package/lib/src/common/ut8Helper.d.ts.map +1 -0
- package/{src/ut8Helper.ts → lib/src/common/ut8Helper.js} +22 -21
- package/lib/src/common/utils.d.ts +7 -0
- package/lib/src/common/utils.d.ts.map +1 -0
- package/lib/src/common/utils.js +66 -0
- package/lib/src/common/wsError.d.ts +29 -0
- package/lib/src/common/wsError.d.ts.map +1 -0
- package/lib/src/common/wsError.js +51 -0
- package/{src/wsOptions.ts → lib/src/common/wsOptions.d.ts} +4 -2
- package/lib/src/common/wsOptions.d.ts.map +1 -0
- package/lib/src/common/wsOptions.js +2 -0
- package/lib/src/index.d.ts +9 -0
- package/lib/src/index.d.ts.map +1 -0
- package/lib/src/index.js +58 -0
- package/lib/src/sql/wsProto.d.ts +26 -0
- package/lib/src/sql/wsProto.d.ts.map +1 -0
- package/lib/src/sql/wsProto.js +19 -0
- package/lib/src/sql/wsRows.d.ts +16 -0
- package/lib/src/sql/wsRows.d.ts.map +1 -0
- package/lib/src/sql/wsRows.js +87 -0
- package/lib/src/sql/wsSql.d.ts +24 -0
- package/lib/src/sql/wsSql.d.ts.map +1 -0
- package/lib/src/sql/wsSql.js +174 -0
- package/lib/src/stmt/wsParams.d.ts +41 -0
- package/lib/src/stmt/wsParams.d.ts.map +1 -0
- package/lib/src/stmt/wsParams.js +428 -0
- package/lib/src/stmt/wsProto.d.ts +27 -0
- package/lib/src/stmt/wsProto.d.ts.map +1 -0
- package/lib/src/stmt/wsProto.js +67 -0
- package/lib/src/stmt/wsStmt.d.ts +30 -0
- package/lib/src/stmt/wsStmt.d.ts.map +1 -0
- package/lib/src/stmt/wsStmt.js +207 -0
- package/lib/src/tmq/config.d.ts +14 -0
- package/lib/src/tmq/config.d.ts.map +1 -0
- package/lib/src/tmq/config.js +42 -0
- package/lib/src/tmq/constant.d.ts +100 -0
- package/lib/src/tmq/constant.d.ts.map +1 -0
- package/lib/src/tmq/constant.js +105 -0
- package/lib/src/tmq/tmqResponse.d.ts +92 -0
- package/lib/src/tmq/tmqResponse.d.ts.map +1 -0
- package/lib/src/tmq/tmqResponse.js +329 -0
- package/lib/src/tmq/wsTmq.d.ts +32 -0
- package/lib/src/tmq/wsTmq.d.ts.map +1 -0
- package/lib/src/tmq/wsTmq.js +319 -0
- package/lib/test/bulkPulling/log.test.d.ts +2 -0
- package/lib/test/bulkPulling/log.test.d.ts.map +1 -0
- package/lib/test/bulkPulling/log.test.js +44 -0
- package/lib/test/bulkPulling/queryTables.test.d.ts +2 -0
- package/lib/test/bulkPulling/queryTables.test.d.ts.map +1 -0
- package/lib/test/bulkPulling/queryTables.test.js +297 -0
- package/lib/test/bulkPulling/schemaless.test.d.ts +2 -0
- package/lib/test/bulkPulling/schemaless.test.d.ts.map +1 -0
- package/lib/test/bulkPulling/schemaless.test.js +95 -0
- package/lib/test/bulkPulling/sql.test.d.ts +2 -0
- package/lib/test/bulkPulling/sql.test.d.ts.map +1 -0
- package/lib/test/bulkPulling/sql.test.js +144 -0
- package/lib/test/bulkPulling/stmt.func.test.d.ts +2 -0
- package/lib/test/bulkPulling/stmt.func.test.d.ts.map +1 -0
- package/lib/test/bulkPulling/stmt.func.test.js +397 -0
- package/lib/test/bulkPulling/stmt.type.test.d.ts +2 -0
- package/lib/test/bulkPulling/stmt.type.test.d.ts.map +1 -0
- package/lib/test/bulkPulling/stmt.type.test.js +269 -0
- package/lib/test/bulkPulling/tmq.test.d.ts +2 -0
- package/lib/test/bulkPulling/tmq.test.d.ts.map +1 -0
- package/lib/test/bulkPulling/tmq.test.js +178 -0
- package/lib/test/bulkPulling/wsConnectPool.test.d.ts +2 -0
- package/lib/test/bulkPulling/wsConnectPool.test.d.ts.map +1 -0
- package/lib/test/bulkPulling/wsConnectPool.test.js +136 -0
- package/lib/test/utils.d.ts +18 -0
- package/lib/test/utils.d.ts.map +1 -0
- package/lib/test/utils.js +318 -0
- package/package.json +27 -14
- package/readme.md +302 -0
- package/README.md +0 -59
- package/dist/browser/index.js +0 -778
- package/dist/main/index.js +0 -711
- package/dist/main/index.js.map +0 -1
- package/dist/module/index.mjs +0 -704
- package/dist/module/index.mjs.map +0 -1
- package/dist/types.d.ts +0 -103
- package/dist/types.d.ts.map +0 -1
- package/example/basicUsageAsync.ts +0 -48
- package/example/basicUsagePrimse.ts +0 -43
- package/example/cloudUsage.ts +0 -55
- package/example/continousConnectAndVersion.ts +0 -16
- package/example/test.mjs +0 -51
- package/index.ts +0 -7
- package/jest.config.js +0 -8
- package/src/constant.ts +0 -74
- package/src/taosResult.ts +0 -269
- package/src/tdengineWebsocket.ts +0 -39
- package/src/wsClient.ts +0 -196
- package/src/wsError.ts +0 -5
- package/src/wsQuery.ts +0 -30
- package/src/wsQueryInterface.ts +0 -212
- package/src/wsQueryResponse.ts +0 -112
- package/tdengine-websocket-3.0.0.tgz +0 -0
- package/test/bulkPulling/connect.test.ts +0 -27
- package/test/bulkPulling/queryTables.test.ts +0 -274
- package/test/bulkPulling/version.test.ts +0 -19
- package/test/utils.ts +0 -235
- package/tsconfig.json +0 -101
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"all_type_query.d.ts","sourceRoot":"","sources":["../../example/all_type_query.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const config_1 = require("../src/common/config");
|
|
4
|
+
const src_1 = require("../src");
|
|
5
|
+
let dsn = 'ws://127.0.0.1:6041';
|
|
6
|
+
async function json_tag_example() {
|
|
7
|
+
let wsSql = null;
|
|
8
|
+
try {
|
|
9
|
+
let conf = new config_1.WSConfig(dsn);
|
|
10
|
+
conf.setUser('root');
|
|
11
|
+
conf.setPwd('taosdata');
|
|
12
|
+
wsSql = await (0, src_1.sqlConnect)(conf);
|
|
13
|
+
console.log("Connected to " + dsn + " successfully.");
|
|
14
|
+
// create database
|
|
15
|
+
await wsSql.exec('CREATE DATABASE IF NOT EXISTS example_json_tag');
|
|
16
|
+
console.log("Create database example_json_tag successfully.");
|
|
17
|
+
// create table
|
|
18
|
+
await wsSql.exec('create table if not exists example_json_tag.stb (ts timestamp, v int) tags(jt json)');
|
|
19
|
+
console.log("Create stable example_json_tag.stb successfully");
|
|
20
|
+
let insertQuery = 'INSERT INTO ' +
|
|
21
|
+
'example_json_tag.tb1 USING example_json_tag.stb TAGS(\'{"name":"value"}\') ' +
|
|
22
|
+
"values(now, 1) ";
|
|
23
|
+
let taosResult = await wsSql.exec(insertQuery);
|
|
24
|
+
console.log("Successfully inserted " + taosResult.getAffectRows() + " rows to example_json_tag.stb.");
|
|
25
|
+
let sql = 'SELECT ts, v, jt FROM example_json_tag.stb limit 100';
|
|
26
|
+
let wsRows = await wsSql.query(sql);
|
|
27
|
+
while (await wsRows.next()) {
|
|
28
|
+
let row = wsRows.getData();
|
|
29
|
+
if (row) {
|
|
30
|
+
console.log('ts: ' + row[0] + ', v: ' + row[1] + ', jt: ' + row[2]);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
console.error(`Failed to create database example_json_tag or stable stb, ErrCode: ${err.code}, ErrMessage: ${err.message}`);
|
|
36
|
+
}
|
|
37
|
+
finally {
|
|
38
|
+
if (wsSql) {
|
|
39
|
+
await wsSql.close();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async function all_type_example() {
|
|
44
|
+
let wsSql = null;
|
|
45
|
+
try {
|
|
46
|
+
let conf = new config_1.WSConfig(dsn);
|
|
47
|
+
conf.setUser('root');
|
|
48
|
+
conf.setPwd('taosdata');
|
|
49
|
+
wsSql = await (0, src_1.sqlConnect)(conf);
|
|
50
|
+
console.log("Connected to " + dsn + " successfully.");
|
|
51
|
+
// create database
|
|
52
|
+
await wsSql.exec('CREATE DATABASE IF NOT EXISTS all_type_example');
|
|
53
|
+
console.log("Create database all_type_example successfully.");
|
|
54
|
+
// create table
|
|
55
|
+
await wsSql.exec('create table if not exists all_type_example.stb (ts timestamp, ' +
|
|
56
|
+
'int_col INT, double_col DOUBLE, bool_col BOOL, binary_col BINARY(100),' +
|
|
57
|
+
'nchar_col NCHAR(100), varbinary_col VARBINARY(100), geometry_col GEOMETRY(100)) ' +
|
|
58
|
+
'tags(int_tag INT, double_tag DOUBLE, bool_tag BOOL, binary_tag BINARY(100),' +
|
|
59
|
+
'nchar_tag NCHAR(100), varbinary_tag VARBINARY(100), geometry_tag GEOMETRY(100));');
|
|
60
|
+
console.log("Create stable all_type_example.stb successfully");
|
|
61
|
+
let insertQuery = "INSERT INTO all_type_example.tb1 using all_type_example.stb "
|
|
62
|
+
+ "tags(1, 1.1, true, 'binary_value', 'nchar_value', '\\x98f46e', 'POINT(100 100)') "
|
|
63
|
+
+ "values(now, 1, 1.1, true, 'binary_value', 'nchar_value', '\\x98f46e', 'POINT(100 100)')";
|
|
64
|
+
let taosResult = await wsSql.exec(insertQuery);
|
|
65
|
+
console.log("Successfully inserted " + taosResult.getAffectRows() + " rows to all_type_example.stb.");
|
|
66
|
+
let sql = 'SELECT * FROM all_type_example.stb limit 100';
|
|
67
|
+
let wsRows = await wsSql.query(sql);
|
|
68
|
+
let meta = wsRows.getMeta();
|
|
69
|
+
console.log("wsRow:meta:=>", meta);
|
|
70
|
+
while (await wsRows.next()) {
|
|
71
|
+
let row = wsRows.getData();
|
|
72
|
+
console.log(row);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
console.error(`Failed to create database all_type_example or stable stb, ErrCode: ${err.code}, ErrMessage: ${err.message}`);
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
if (wsSql) {
|
|
80
|
+
await wsSql.close();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async function test() {
|
|
85
|
+
await json_tag_example();
|
|
86
|
+
await all_type_example();
|
|
87
|
+
(0, src_1.destroy)();
|
|
88
|
+
}
|
|
89
|
+
test();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"all_type_stmt.d.ts","sourceRoot":"","sources":["../../example/all_type_stmt.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const config_1 = require("../src/common/config");
|
|
4
|
+
const src_1 = require("../src");
|
|
5
|
+
const log_1 = require("../src/common/log");
|
|
6
|
+
let dsn = 'ws://127.0.0.1:6041';
|
|
7
|
+
async function json_tag_example() {
|
|
8
|
+
let wsSql = null;
|
|
9
|
+
try {
|
|
10
|
+
let conf = new config_1.WSConfig(dsn);
|
|
11
|
+
conf.setUser('root');
|
|
12
|
+
conf.setPwd('taosdata');
|
|
13
|
+
wsSql = await (0, src_1.sqlConnect)(conf);
|
|
14
|
+
console.log("Connected to " + dsn + " successfully.");
|
|
15
|
+
// create database
|
|
16
|
+
await wsSql.exec('CREATE DATABASE IF NOT EXISTS example_json_tag');
|
|
17
|
+
console.log("Create database example_json_tag successfully.");
|
|
18
|
+
await wsSql.exec('use example_json_tag');
|
|
19
|
+
// create table
|
|
20
|
+
await wsSql.exec('create table if not exists stb (ts timestamp, v int) tags(jt json)');
|
|
21
|
+
console.log("Create stable example_json_tag.stb successfully");
|
|
22
|
+
let stmt = await wsSql.stmtInit();
|
|
23
|
+
await stmt.prepare("INSERT INTO ? using stb tags(?) VALUES (?,?)");
|
|
24
|
+
await stmt.setTableName(`tb1`);
|
|
25
|
+
let tagParams = stmt.newStmtParam();
|
|
26
|
+
tagParams.setJson(['{"name":"value"}']);
|
|
27
|
+
await stmt.setTags(tagParams);
|
|
28
|
+
let bindParams = stmt.newStmtParam();
|
|
29
|
+
const currentMillis = new Date().getTime();
|
|
30
|
+
bindParams.setTimestamp([currentMillis]);
|
|
31
|
+
bindParams.setInt([1]);
|
|
32
|
+
await stmt.bind(bindParams);
|
|
33
|
+
await stmt.batch();
|
|
34
|
+
await stmt.exec();
|
|
35
|
+
await stmt.close();
|
|
36
|
+
let sql = 'SELECT ts, v, jt FROM example_json_tag.stb limit 100';
|
|
37
|
+
let wsRows = await wsSql.query(sql);
|
|
38
|
+
while (await wsRows.next()) {
|
|
39
|
+
let row = wsRows.getData();
|
|
40
|
+
if (row) {
|
|
41
|
+
console.log('ts: ' + row[0] + ', v: ' + row[1] + ', jt: ' + row[2]);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
console.error(`Failed to create database example_json_tag or stable stb, ErrCode: ${err.code}, ErrMessage: ${err.message}`);
|
|
47
|
+
}
|
|
48
|
+
finally {
|
|
49
|
+
if (wsSql) {
|
|
50
|
+
await wsSql.close();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async function all_type_example() {
|
|
55
|
+
let wsSql = null;
|
|
56
|
+
let stmt = null;
|
|
57
|
+
try {
|
|
58
|
+
let conf = new config_1.WSConfig(dsn);
|
|
59
|
+
conf.setUser('root');
|
|
60
|
+
conf.setPwd('taosdata');
|
|
61
|
+
wsSql = await (0, src_1.sqlConnect)(conf);
|
|
62
|
+
console.log("Connected to " + dsn + " successfully.");
|
|
63
|
+
// create database
|
|
64
|
+
await wsSql.exec('CREATE DATABASE IF NOT EXISTS all_type_example');
|
|
65
|
+
console.log("Create database all_type_example successfully.");
|
|
66
|
+
await wsSql.exec('use all_type_example');
|
|
67
|
+
// create table
|
|
68
|
+
await wsSql.exec('create table if not exists stb (ts timestamp, ' +
|
|
69
|
+
'int_col INT, double_col DOUBLE, bool_col BOOL, binary_col BINARY(100),' +
|
|
70
|
+
'nchar_col NCHAR(100), varbinary_col VARBINARY(100), geometry_col GEOMETRY(100)) ' +
|
|
71
|
+
'tags(int_tag INT, double_tag DOUBLE, bool_tag BOOL, binary_tag BINARY(100),' +
|
|
72
|
+
'nchar_tag NCHAR(100), varbinary_tag VARBINARY(100), geometry_tag GEOMETRY(100));');
|
|
73
|
+
console.log("Create stable all_type_example.stb successfully");
|
|
74
|
+
let geometryData = new Uint8Array([0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
|
75
|
+
0x00, 0x00, 0x00, 0x59, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40,]).buffer;
|
|
76
|
+
const encoder = new TextEncoder();
|
|
77
|
+
let vbData = encoder.encode(`Hello, world!`).buffer;
|
|
78
|
+
stmt = await wsSql.stmtInit();
|
|
79
|
+
await stmt.prepare("INSERT INTO ? using stb tags(?,?,?,?,?,?,?) VALUES (?,?,?,?,?,?,?,?)");
|
|
80
|
+
await stmt.setTableName(`tb1`);
|
|
81
|
+
let tagParams = stmt.newStmtParam();
|
|
82
|
+
tagParams.setInt([1]);
|
|
83
|
+
tagParams.setDouble([1.1]);
|
|
84
|
+
tagParams.setBoolean([true]);
|
|
85
|
+
tagParams.setVarchar(["hello"]);
|
|
86
|
+
tagParams.setNchar(["stmt"]);
|
|
87
|
+
tagParams.setGeometry([geometryData]);
|
|
88
|
+
tagParams.setVarBinary([vbData]);
|
|
89
|
+
await stmt.setTags(tagParams);
|
|
90
|
+
let bindParams = stmt.newStmtParam();
|
|
91
|
+
const currentMillis = new Date().getTime();
|
|
92
|
+
bindParams.setTimestamp([currentMillis]);
|
|
93
|
+
bindParams.setInt([1]);
|
|
94
|
+
bindParams.setDouble([1.1]);
|
|
95
|
+
bindParams.setBoolean([true]);
|
|
96
|
+
bindParams.setVarchar(["hello"]);
|
|
97
|
+
bindParams.setNchar(["stmt"]);
|
|
98
|
+
bindParams.setGeometry([geometryData]);
|
|
99
|
+
bindParams.setVarBinary([vbData]);
|
|
100
|
+
await stmt.bind(bindParams);
|
|
101
|
+
await stmt.batch();
|
|
102
|
+
await stmt.exec();
|
|
103
|
+
let sql = 'SELECT * FROM all_type_example.stb limit 100';
|
|
104
|
+
let wsRows = await wsSql.query(sql);
|
|
105
|
+
let meta = wsRows.getMeta();
|
|
106
|
+
console.log("wsRow:meta:=>", meta);
|
|
107
|
+
while (await wsRows.next()) {
|
|
108
|
+
let row = wsRows.getData();
|
|
109
|
+
console.log(row);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
console.error(`Failed to create database all_type_example or stable stb, ErrCode: ${err.code}, ErrMessage: ${err.message}`);
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
if (stmt) {
|
|
117
|
+
await stmt.close();
|
|
118
|
+
}
|
|
119
|
+
if (wsSql) {
|
|
120
|
+
await wsSql.close();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
async function test() {
|
|
125
|
+
(0, log_1.setLevel)("debug");
|
|
126
|
+
await json_tag_example();
|
|
127
|
+
await all_type_example();
|
|
128
|
+
(0, src_1.destroy)();
|
|
129
|
+
}
|
|
130
|
+
test();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basicBatchTmq.d.ts","sourceRoot":"","sources":["../../example/basicBatchTmq.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const config_1 = require("../src/common/config");
|
|
4
|
+
const constant_1 = require("../src/tmq/constant");
|
|
5
|
+
const src_1 = require("../src");
|
|
6
|
+
const db = 'power';
|
|
7
|
+
const stable = 'meters';
|
|
8
|
+
const url = 'ws://localhost:6041';
|
|
9
|
+
const topic = 'topic_meters';
|
|
10
|
+
const topics = [topic];
|
|
11
|
+
const groupId = "group-50";
|
|
12
|
+
const clientId = "client-50";
|
|
13
|
+
async function createConsumer() {
|
|
14
|
+
let configMap = new Map([
|
|
15
|
+
[constant_1.TMQConstants.GROUP_ID, groupId],
|
|
16
|
+
[constant_1.TMQConstants.CLIENT_ID, clientId],
|
|
17
|
+
[constant_1.TMQConstants.CONNECT_USER, "root"],
|
|
18
|
+
[constant_1.TMQConstants.CONNECT_PASS, "taosdata"],
|
|
19
|
+
[constant_1.TMQConstants.AUTO_OFFSET_RESET, "earliest"],
|
|
20
|
+
[constant_1.TMQConstants.WS_URL, url],
|
|
21
|
+
[constant_1.TMQConstants.ENABLE_AUTO_COMMIT, 'false'],
|
|
22
|
+
[constant_1.TMQConstants.AUTO_COMMIT_INTERVAL_MS, '1000']
|
|
23
|
+
]);
|
|
24
|
+
try {
|
|
25
|
+
let conn = await (0, src_1.tmqConnect)(configMap);
|
|
26
|
+
console.log(`Create consumer successfully, host: ${url}, groupId: ${groupId}, clientId: ${clientId}`);
|
|
27
|
+
return conn;
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
console.error(`Failed to create websocket consumer, topic: ${topic}, groupId: ${groupId}, clientId: ${clientId}, ErrCode: ${err.code}, ErrMessage: ${err.message}`);
|
|
31
|
+
throw err;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// ANCHOR_END: create_consumer
|
|
35
|
+
async function prepare() {
|
|
36
|
+
let conf = new config_1.WSConfig('ws://localhost:6041');
|
|
37
|
+
conf.setUser('root');
|
|
38
|
+
conf.setPwd('taosdata');
|
|
39
|
+
conf.setDb(db);
|
|
40
|
+
const createDB = `CREATE DATABASE IF NOT EXISTS ${db}`;
|
|
41
|
+
const createStable = `CREATE STABLE IF NOT EXISTS ${db}.${stable} (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupId int);`;
|
|
42
|
+
let wsSql = await (0, src_1.sqlConnect)(conf);
|
|
43
|
+
await wsSql.exec(createDB);
|
|
44
|
+
await wsSql.exec(createStable);
|
|
45
|
+
let createTopic = `CREATE TOPIC IF NOT EXISTS ${topics[0]} AS SELECT * FROM ${db}.${stable}`;
|
|
46
|
+
await wsSql.exec(createTopic);
|
|
47
|
+
wsSql.close();
|
|
48
|
+
}
|
|
49
|
+
async function insert() {
|
|
50
|
+
let conf = new config_1.WSConfig('ws://localhost:6041');
|
|
51
|
+
conf.setUser('root');
|
|
52
|
+
conf.setPwd('taosdata');
|
|
53
|
+
conf.setDb(db);
|
|
54
|
+
let wsSql = await (0, src_1.sqlConnect)(conf);
|
|
55
|
+
for (let i = 0; i < 10000; i++) {
|
|
56
|
+
await wsSql.exec(`INSERT INTO d1001 USING ${stable} (location, groupId) TAGS ("California.SanFrancisco", 3) VALUES (NOW + ${i}a, ${10 + i}, ${200 + i}, ${0.32 + i})`);
|
|
57
|
+
}
|
|
58
|
+
await wsSql.close();
|
|
59
|
+
console.log("insert fininsh!!!!!");
|
|
60
|
+
}
|
|
61
|
+
async function subscribe(consumer) {
|
|
62
|
+
// ANCHOR: commit
|
|
63
|
+
try {
|
|
64
|
+
let count = 0;
|
|
65
|
+
await consumer.subscribe(topics);
|
|
66
|
+
let bFinish = false;
|
|
67
|
+
let bBegin = false;
|
|
68
|
+
const startTime = new Date().getTime();
|
|
69
|
+
while (!bFinish) {
|
|
70
|
+
let res = await consumer.poll(100);
|
|
71
|
+
for (let [key, value] of res) {
|
|
72
|
+
// Add your data processing logic here
|
|
73
|
+
let data = value.getData();
|
|
74
|
+
if (data) {
|
|
75
|
+
if (data.length == 0 && bBegin) {
|
|
76
|
+
bFinish = true;
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
else if (data.length > 0) {
|
|
80
|
+
bBegin = true;
|
|
81
|
+
}
|
|
82
|
+
count += data.length;
|
|
83
|
+
console.log("poll end ------>", count);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// await consumer.commit();
|
|
87
|
+
}
|
|
88
|
+
const endTime = new Date().getTime();
|
|
89
|
+
console.log(count, endTime - startTime);
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
console.error(`Failed to poll data, topic: ${topic}, groupId: ${groupId}, clientId: ${clientId}, ErrCode: ${err.code}, ErrMessage: ${err.message}`);
|
|
93
|
+
throw err;
|
|
94
|
+
}
|
|
95
|
+
// ANCHOR_END: commit
|
|
96
|
+
}
|
|
97
|
+
async function consumer() {
|
|
98
|
+
// ANCHOR: unsubscribe
|
|
99
|
+
(0, src_1.setLogLevel)("debug");
|
|
100
|
+
let consumer = null;
|
|
101
|
+
try {
|
|
102
|
+
// await prepare();
|
|
103
|
+
consumer = await createConsumer();
|
|
104
|
+
// const allPromises = [];
|
|
105
|
+
// allPromises.push(subscribe(consumer));
|
|
106
|
+
// allPromises.push(insert());
|
|
107
|
+
// await Promise.all(allPromises);
|
|
108
|
+
// await insert();
|
|
109
|
+
await subscribe(consumer);
|
|
110
|
+
await consumer.unsubscribe();
|
|
111
|
+
console.log("Consumer unsubscribed successfully.");
|
|
112
|
+
}
|
|
113
|
+
catch (err) {
|
|
114
|
+
console.error(`Failed to unsubscribe consumer, topic: ${topic}, groupId: ${groupId}, clientId: ${clientId}, ErrCode: ${err.code}, ErrMessage: ${err.message}`);
|
|
115
|
+
throw err;
|
|
116
|
+
}
|
|
117
|
+
finally {
|
|
118
|
+
if (consumer) {
|
|
119
|
+
await consumer.close();
|
|
120
|
+
console.log("Consumer closed successfully.");
|
|
121
|
+
}
|
|
122
|
+
(0, src_1.destroy)();
|
|
123
|
+
}
|
|
124
|
+
// ANCHOR_END: unsubscribe
|
|
125
|
+
}
|
|
126
|
+
async function test() {
|
|
127
|
+
await consumer();
|
|
128
|
+
}
|
|
129
|
+
test();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basicSchemaless.d.ts","sourceRoot":"","sources":["../../example/basicSchemaless.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const config_1 = require("../src/common/config");
|
|
4
|
+
const wsProto_1 = require("../src/sql/wsProto");
|
|
5
|
+
const src_1 = require("../src");
|
|
6
|
+
let dsn = 'ws://root:taosdata@localhost:6041';
|
|
7
|
+
let db = 'power';
|
|
8
|
+
let influxdbData = "st,t1=3i64,t2=4f64,t3=\"t3\" c1=3i64,c3=L\"passit\",c2=false,c4=4f64 1626006833639000000";
|
|
9
|
+
let telnetData = "stb0_0 1626006833 4 host=host0 interface=eth0";
|
|
10
|
+
let jsonData = "{\"metric\": \"meter_current\",\"timestamp\": 1626846400,\"value\": 10.3, \"tags\": {\"groupid\": 2, \"location\": \"California.SanFrancisco\", \"id\": \"d1001\"}}";
|
|
11
|
+
const dropDB = `drop database if exists ${db}`;
|
|
12
|
+
async function Prepare() {
|
|
13
|
+
let conf = new config_1.WSConfig(dsn);
|
|
14
|
+
conf.setUser('root');
|
|
15
|
+
conf.setPwd('taosdata');
|
|
16
|
+
let wsSql = await (0, src_1.sqlConnect)(conf);
|
|
17
|
+
const topics = ['pwer_meters_topic'];
|
|
18
|
+
let dropTopic = `DROP TOPIC IF EXISTS ${topics[0]};`;
|
|
19
|
+
await wsSql.exec(dropTopic);
|
|
20
|
+
await wsSql.exec(dropDB);
|
|
21
|
+
await wsSql.exec('create database if not exists power KEEP 3650 DURATION 10 BUFFER 16 WAL_LEVEL 1;');
|
|
22
|
+
await wsSql.exec('CREATE STABLE if not exists power.meters (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupId int);');
|
|
23
|
+
wsSql.close();
|
|
24
|
+
}
|
|
25
|
+
(async () => {
|
|
26
|
+
let wsSchemaless = null;
|
|
27
|
+
try {
|
|
28
|
+
let conf = new config_1.WSConfig(dsn);
|
|
29
|
+
conf.setUser('root');
|
|
30
|
+
conf.setPwd('taosdata');
|
|
31
|
+
conf.setDb('power');
|
|
32
|
+
wsSchemaless = await (0, src_1.sqlConnect)(conf);
|
|
33
|
+
await wsSchemaless.schemalessInsert([influxdbData], wsProto_1.SchemalessProto.InfluxDBLineProtocol, wsProto_1.Precision.NANO_SECONDS, 0);
|
|
34
|
+
await wsSchemaless.schemalessInsert([telnetData], wsProto_1.SchemalessProto.OpenTSDBTelnetLineProtocol, wsProto_1.Precision.SECONDS, 0);
|
|
35
|
+
await wsSchemaless.schemalessInsert([jsonData], wsProto_1.SchemalessProto.OpenTSDBJsonFormatProtocol, wsProto_1.Precision.SECONDS, 0);
|
|
36
|
+
wsSchemaless.close();
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
console.error(e);
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
if (wsSchemaless) {
|
|
43
|
+
await wsSchemaless.close();
|
|
44
|
+
}
|
|
45
|
+
(0, src_1.destroy)();
|
|
46
|
+
}
|
|
47
|
+
})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basicSql.d.ts","sourceRoot":"","sources":["../../example/basicSql.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const config_1 = require("../src/common/config");
|
|
4
|
+
const src_1 = require("../src");
|
|
5
|
+
let dsn = 'ws://root:taosdata@localhost:6041';
|
|
6
|
+
(async () => {
|
|
7
|
+
let wsSql = null;
|
|
8
|
+
let wsRows = null;
|
|
9
|
+
let reqId = 0;
|
|
10
|
+
try {
|
|
11
|
+
(0, src_1.setLogLevel)("debug");
|
|
12
|
+
let conf = new config_1.WSConfig(dsn);
|
|
13
|
+
conf.setUser('root');
|
|
14
|
+
conf.setPwd('taosdata');
|
|
15
|
+
wsSql = await (0, src_1.sqlConnect)(conf);
|
|
16
|
+
let version = await wsSql.version();
|
|
17
|
+
console.log(version);
|
|
18
|
+
let taosResult = await wsSql.exec('show databases', reqId++);
|
|
19
|
+
console.log(taosResult);
|
|
20
|
+
taosResult = await wsSql.exec('create database if not exists power KEEP 3650 DURATION 10 BUFFER 16 WAL_LEVEL 1;', reqId++);
|
|
21
|
+
console.log(taosResult);
|
|
22
|
+
taosResult = await wsSql.exec('use power', reqId++);
|
|
23
|
+
console.log(taosResult);
|
|
24
|
+
taosResult = await wsSql.exec('CREATE STABLE if not exists meters (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupId int);', reqId++);
|
|
25
|
+
console.log(taosResult);
|
|
26
|
+
taosResult = await wsSql.exec('describe meters', reqId++);
|
|
27
|
+
console.log(taosResult);
|
|
28
|
+
taosResult = await wsSql.exec('INSERT INTO d1001 USING meters TAGS ("California.SanFrancisco", 3) VALUES (NOW, 10.2, 219, 0.32)', reqId++);
|
|
29
|
+
console.log(taosResult);
|
|
30
|
+
for (let i = 0; i < 100; i++) {
|
|
31
|
+
wsRows = await wsSql.query('select * from meters', reqId++);
|
|
32
|
+
let meta = wsRows.getMeta();
|
|
33
|
+
console.log("wsRow:meta:=>", meta);
|
|
34
|
+
while (await wsRows.next()) {
|
|
35
|
+
let result = wsRows.getData();
|
|
36
|
+
console.log('queryRes.Scan().then=>', result);
|
|
37
|
+
}
|
|
38
|
+
wsRows.close();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
console.error(err.code, err.message);
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
if (wsRows) {
|
|
46
|
+
await wsRows.close();
|
|
47
|
+
}
|
|
48
|
+
if (wsSql) {
|
|
49
|
+
await wsSql.close();
|
|
50
|
+
}
|
|
51
|
+
(0, src_1.destroy)();
|
|
52
|
+
console.log("finish!");
|
|
53
|
+
}
|
|
54
|
+
})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basicStmt.d.ts","sourceRoot":"","sources":["../../example/basicStmt.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const config_1 = require("../src/common/config");
|
|
4
|
+
const src_1 = require("../src");
|
|
5
|
+
let db = 'power';
|
|
6
|
+
let stable = 'meters';
|
|
7
|
+
let numOfSubTable = 10;
|
|
8
|
+
let numOfRow = 10;
|
|
9
|
+
function getRandomInt(min, max) {
|
|
10
|
+
min = Math.ceil(min);
|
|
11
|
+
max = Math.floor(max);
|
|
12
|
+
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
13
|
+
}
|
|
14
|
+
let dsn = 'ws://root:taosdata@localhost:6041';
|
|
15
|
+
async function Prepare() {
|
|
16
|
+
let conf = new config_1.WSConfig(dsn);
|
|
17
|
+
let wsSql = await (0, src_1.sqlConnect)(conf);
|
|
18
|
+
await wsSql.exec(`create database if not exists ${db} KEEP 3650 DURATION 10 BUFFER 16 WAL_LEVEL 1;`);
|
|
19
|
+
await wsSql.exec(`CREATE STABLE if not exists ${db}.${stable} (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupId int);`);
|
|
20
|
+
wsSql.close();
|
|
21
|
+
}
|
|
22
|
+
(async () => {
|
|
23
|
+
let stmt = null;
|
|
24
|
+
let connector = null;
|
|
25
|
+
try {
|
|
26
|
+
await Prepare();
|
|
27
|
+
let wsConf = new config_1.WSConfig(dsn);
|
|
28
|
+
wsConf.setDb(db);
|
|
29
|
+
connector = await (0, src_1.sqlConnect)(wsConf);
|
|
30
|
+
stmt = await connector.stmtInit();
|
|
31
|
+
await stmt.prepare(`INSERT INTO ? USING ${db}.${stable} (location, groupId) TAGS (?, ?) VALUES (?, ?, ?, ?)`);
|
|
32
|
+
for (let i = 0; i < numOfSubTable; i++) {
|
|
33
|
+
await stmt.setTableName(`d_bind_${i}`);
|
|
34
|
+
let tagParams = stmt.newStmtParam();
|
|
35
|
+
tagParams.setVarchar([`location_${i}`]);
|
|
36
|
+
tagParams.setInt([i]);
|
|
37
|
+
await stmt.setTags(tagParams);
|
|
38
|
+
let timestampParams = [];
|
|
39
|
+
let currentParams = [];
|
|
40
|
+
let voltageParams = [];
|
|
41
|
+
let phaseParams = [];
|
|
42
|
+
const currentMillis = new Date().getTime();
|
|
43
|
+
for (let j = 0; j < numOfRow; j++) {
|
|
44
|
+
timestampParams.push(currentMillis + j);
|
|
45
|
+
currentParams.push(Math.random() * 30);
|
|
46
|
+
voltageParams.push(getRandomInt(100, 300));
|
|
47
|
+
phaseParams.push(Math.random());
|
|
48
|
+
}
|
|
49
|
+
let bindParams = stmt.newStmtParam();
|
|
50
|
+
bindParams.setTimestamp(timestampParams);
|
|
51
|
+
bindParams.setFloat(currentParams);
|
|
52
|
+
bindParams.setInt(voltageParams);
|
|
53
|
+
bindParams.setFloat(phaseParams);
|
|
54
|
+
await stmt.bind(bindParams);
|
|
55
|
+
await stmt.batch();
|
|
56
|
+
await stmt.exec();
|
|
57
|
+
console.log(`d_bind_${i} insert ` + stmt.getLastAffected() + " rows.");
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
console.error(e);
|
|
62
|
+
}
|
|
63
|
+
finally {
|
|
64
|
+
if (stmt) {
|
|
65
|
+
await stmt.close();
|
|
66
|
+
}
|
|
67
|
+
if (connector) {
|
|
68
|
+
await connector.close();
|
|
69
|
+
}
|
|
70
|
+
(0, src_1.destroy)();
|
|
71
|
+
}
|
|
72
|
+
})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basicTmq.d.ts","sourceRoot":"","sources":["../../example/basicTmq.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const config_1 = require("../src/common/config");
|
|
4
|
+
const constant_1 = require("../src/tmq/constant");
|
|
5
|
+
const src_1 = require("../src");
|
|
6
|
+
const stable = 'meters';
|
|
7
|
+
const db = 'power';
|
|
8
|
+
const topics = ['topic_ws_map'];
|
|
9
|
+
let dropTopic = `DROP TOPIC IF EXISTS ${topics[0]};`;
|
|
10
|
+
let configMap = new Map([
|
|
11
|
+
[constant_1.TMQConstants.GROUP_ID, "gId_11"],
|
|
12
|
+
[constant_1.TMQConstants.CONNECT_USER, "root"],
|
|
13
|
+
[constant_1.TMQConstants.CONNECT_PASS, "taosdata"],
|
|
14
|
+
[constant_1.TMQConstants.AUTO_OFFSET_RESET, "earliest"],
|
|
15
|
+
[constant_1.TMQConstants.CLIENT_ID, 'test_tmq_client11'],
|
|
16
|
+
[constant_1.TMQConstants.WS_URL, 'ws://localhost:6041'],
|
|
17
|
+
[constant_1.TMQConstants.ENABLE_AUTO_COMMIT, 'false'],
|
|
18
|
+
[constant_1.TMQConstants.AUTO_COMMIT_INTERVAL_MS, '1000']
|
|
19
|
+
]);
|
|
20
|
+
let dsn = 'ws://root:taosdata@localhost:6041';
|
|
21
|
+
async function Prepare() {
|
|
22
|
+
let conf = new config_1.WSConfig(dsn);
|
|
23
|
+
const createDB = `create database if not exists ${db} KEEP 3650 DURATION 10 BUFFER 16 WAL_LEVEL 1;`;
|
|
24
|
+
const createStable = `CREATE STABLE if not exists ${db}.${stable} (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupId int);`;
|
|
25
|
+
let createTopic = `create topic if not exists ${topics[0]} as select * from ${db}.${stable}`;
|
|
26
|
+
const useDB = `use ${db}`;
|
|
27
|
+
let ws = await (0, src_1.sqlConnect)(conf);
|
|
28
|
+
await ws.exec(createDB);
|
|
29
|
+
await ws.exec(useDB);
|
|
30
|
+
await ws.exec(createStable);
|
|
31
|
+
await ws.exec(createTopic);
|
|
32
|
+
for (let i = 0; i < 1000; i++) {
|
|
33
|
+
await ws.exec(`INSERT INTO d1001 USING ${stable} (location, groupId) TAGS ("California.SanFrancisco", 3) VALUES (NOW + ${i}a, ${10 + i}, ${200 + i}, ${0.32 + i})`);
|
|
34
|
+
}
|
|
35
|
+
await ws.close();
|
|
36
|
+
}
|
|
37
|
+
(async () => {
|
|
38
|
+
let consumer = null;
|
|
39
|
+
try {
|
|
40
|
+
(0, src_1.setLogLevel)("debug");
|
|
41
|
+
await Prepare();
|
|
42
|
+
consumer = await (0, src_1.tmqConnect)(configMap);
|
|
43
|
+
await consumer.subscribe(topics);
|
|
44
|
+
for (let i = 0; i < 5; i++) {
|
|
45
|
+
let res = await consumer.poll(100);
|
|
46
|
+
for (let [key, value] of res) {
|
|
47
|
+
console.log(key, value.getMeta());
|
|
48
|
+
let data = value.getData();
|
|
49
|
+
if (data) {
|
|
50
|
+
console.log(data.length);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// await consumer.commit();
|
|
54
|
+
}
|
|
55
|
+
// let assignment = await consumer.assignment()
|
|
56
|
+
// console.log(assignment)
|
|
57
|
+
// await consumer.seekToBeginning(assignment)
|
|
58
|
+
// assignment = await consumer.assignment()
|
|
59
|
+
// for(let i in assignment) {
|
|
60
|
+
// console.log("seek after:", assignment[i])
|
|
61
|
+
// }
|
|
62
|
+
await consumer.unsubscribe();
|
|
63
|
+
}
|
|
64
|
+
catch (e) {
|
|
65
|
+
console.error(e);
|
|
66
|
+
}
|
|
67
|
+
finally {
|
|
68
|
+
if (consumer) {
|
|
69
|
+
await consumer.close();
|
|
70
|
+
}
|
|
71
|
+
(0, src_1.destroy)();
|
|
72
|
+
}
|
|
73
|
+
})();
|