From b6e34999b17d13d73ce1a2406c69d0f2620f8877 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Fri, 28 Apr 2017 22:04:27 +0200 Subject: [PATCH] mqtt added --- package.json | 1 + src/main.ts | 30 ++++++++++++++++++++++++++---- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 674a9be..2d20ab1 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "license": "ISC", "devDependencies": { "@types/commander": "^2.9.0", + "@types/mqtt": "0.0.34", "@types/node": "^7.0.14", "typescript": "^2.3.1" }, diff --git a/src/main.ts b/src/main.ts index a57390a..a70fe71 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,18 +1,40 @@ +import * as Mqtt from 'mqtt' class MqttMongo { + private mqttClient : Mqtt.Client + constructor() { } exec(): void { - console.log("Hello, %s", program['name']) + this.mqttClient = Mqtt.connect(options['broker']) + this.mqttClient.on('connect', () => { + console.log("connected to broker") + this.mqttClient.subscribe('MqttMongo/Command') + this.mqttClient.publish('MqttMongo/Status', 'hello, started up') + }) + this.mqttClient.on('message', (topic : string, message : string) => { + console.log("message received") + console.log("topic %s", topic) + console.log("message %s", message) + + if (topic == "MqttMongo/Command" && message == "shutdown") { + this.mqttClient.end() + } + }) + this.mqttClient.on('close', () => { + console.log("bye bye") + }) + + console.log("Hello world") } } -import program = require('commander') -program +import options = require('commander') +options .version('0.0.1') - .option('-n, --name [name]', 'Name to greet', 'Wolfgang') + .option('-b, --broker [broker url]', 'Broker URL', 'mqtt://mqttbroker') .parse(process.argv) const mqttMongo = new MqttMongo()