introduce mongodb connection

This commit is contained in:
Wolfgang Hottgenroth 2017-04-30 19:00:16 +02:00
parent 3b25d3df89
commit a421153173
2 changed files with 27 additions and 7 deletions

View File

@ -10,18 +10,20 @@
},
"author": "Wolfgang Hottgenroth",
"license": "ISC",
"repository": {
"type" : "git",
"url" : "git@gitlab.com:wolutator/MqttMongoNodejs.git"
"repository": {
"type": "git",
"url": "git@gitlab.com:wolutator/MqttMongoNodejs.git"
},
"devDependencies": {
"@types/commander": "^2.9.0",
"@types/mongodb": "^2.2.0",
"@types/mqtt": "0.0.34",
"@types/node": "^7.0.14",
"typescript": "^2.3.1"
},
"dependencies": {
"commander": "^2.9.0",
"mongodb": "^2.2.26",
"mqtt": "^2.6.2"
}
}

View File

@ -1,13 +1,31 @@
import * as Mqtt from 'mqtt'
import * as Mongo from 'mongodb'
var MQTT_BROKER_URL : String = 'mqtt://localhost'
var MONGO_DATABASE_URL : String = 'mongodb://localhost/test'
class MqttMongo {
private mqttClient : Mqtt.Client
private dbHandle : Mongo.Db;
private msgCnt : number = 0;
constructor() {
this.mqttClient = Mqtt.connect(options['broker'])
this.mqttClient.on('offline', () => { console.log("mqtt client is offline") })
this.mqttClient.on('reconnect', () => { console.log("mqtt client is reconnecting") })
this.mqttClient.on('close', () => { console.log("mqtt connection closed") })
/*
Mongo.MongoClient.connect(options['database'])
.then(
(dbHandle: Mongo.Db) => { this.dbHandle = dbHandle },
(err: String) => {
console.log("Unable to connect to database: %s", err)
}
)
*/
}
exec(): void {
@ -18,9 +36,8 @@ class MqttMongo {
})
this.mqttClient.on('message', (topic : string, message : string) => {
console.log("message received")
console.log("topic %s", topic)
console.log("message %s", message)
this.msgCnt++;
console.log(`message received ${this.msgCnt}, topic ${topic}, payload ${message}`)
if (topic == "MqttMongo/Command" && message == "shutdown") {
this.mqttClient.end()
@ -33,7 +50,8 @@ class MqttMongo {
import options = require('commander')
options
.version('0.0.1')
.option('-b, --broker [broker url]', 'Broker URL', 'mqtt://mqttbroker')
.option('-b, --broker [broker url]', 'Broker URL', MQTT_BROKER_URL)
.option('-m, --database [database url]', 'MongoDB Database URL', MONGO_DATABASE_URL)
.parse(process.argv)
const mqttMongo = new MqttMongo()