UNPKG

@tdengine/websocket

Version:

The websocket Node.js connector for TDengine. TDengine versions 3.3.2.0 and above are recommended to use this connector.

81 lines (80 loc) 3.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const constant_1 = require("../../src/tmq/constant"); const wsTmq_1 = require("../../src/tmq/wsTmq"); const wsConnectorPool_1 = require("../../src/client/wsConnectorPool"); const log_1 = require("../../src/common/log"); const config_1 = require("../../src/common/config"); const wsSql_1 = require("../../src/sql/wsSql"); beforeAll(async () => { const url = `wss://${process.env.TDENGINE_CLOUD_URL}?token=${process.env.TDENGINE_CLOUD_TOKEN}`; let wsSql = null; try { const conf = new config_1.WSConfig(url); conf.setUser('root'); conf.setPwd('taosdata'); wsSql = await wsSql_1.WsSql.open(conf); let sql = `INSERT INTO dmeters.d1001 USING dmeters.meters (groupid, location) TAGS(2, 'SanFrancisco') VALUES (NOW + 1a, 10.30000, 219, 0.31000) (NOW + 2a, 12.60000, 218, 0.33000) (NOW + 3a, 12.30000, 221, 0.31000) dmeters.d1002 USING dmeters.meters (groupid, location) TAGS(3, 'SanFrancisco') VALUES (NOW + 1a, 10.30000, 218, 0.25000)`; let res = await wsSql.exec(sql); console.log(res); expect(res.getAffectRows()).toBeGreaterThanOrEqual(3); } catch (err) { throw err; } finally { if (wsSql) { await wsSql.close(); } } }); describe('TDWebSocket.Tmq()', () => { jest.setTimeout(20 * 1000); test('normal connect', async () => { const url = `wss://${process.env.TDENGINE_CLOUD_URL}?token=${process.env.TDENGINE_CLOUD_TOKEN}`; // const TDENGINE_CLOUD_URL = 'wss://gw.cloud.taosdata.com?token=1eb78307be0681ac2fc07c2817ba8a9719641fb9'; const topic = 'topic_meters'; const topics = [topic]; const groupId = 'group1'; const clientId = 'client1'; let configMap = new Map([ [constant_1.TMQConstants.GROUP_ID, groupId], [constant_1.TMQConstants.CLIENT_ID, clientId], [constant_1.TMQConstants.AUTO_OFFSET_RESET, 'earliest'], [constant_1.TMQConstants.WS_URL, url], [constant_1.TMQConstants.ENABLE_AUTO_COMMIT, 'true'], [constant_1.TMQConstants.AUTO_COMMIT_INTERVAL_MS, '1000'], ]); (0, log_1.setLevel)("debug"); // create consumer let consumer = await wsTmq_1.WsConsumer.newConsumer(configMap); console.log(`Create consumer successfully, host: ${url}, groupId: ${groupId}, clientId: ${clientId}`); // subscribe await consumer.subscribe(topics); console.log(`Subscribe topics successfully, topics: ${topics}`); let res = new Map(); while (res.size == 0) { // poll res = await consumer.poll(1000); for (let [key, value] of res) { // Add your data processing logic here console.log(`data: ${key} ${value}`); } // commit await consumer.commit(); } // seek let assignment = await consumer.assignment(); await consumer.seekToBeginning(assignment); console.log('Assignment seek to beginning successfully'); // clean await consumer.unsubscribe(); await consumer.close(); }); }); afterAll(async () => { wsConnectorPool_1.WebSocketConnectionPool.instance().destroyed(); });