refactoring

This commit is contained in:
Wolfgang Hottgenroth
2018-01-03 21:31:14 +01:00
parent 1aadc7562e
commit ccf5bf8831

View File

@ -27,29 +27,40 @@ function start() {
client.on('message', (topic, payload) => { client.on('message', (topic, payload) => {
payload = payload.toString('UTF-8'); payload = payload.toString('UTF-8');
logger.info(`message received on topic ${topic}: ${payload}`); logger.info(`message received on topic ${topic}: ${payload}`);
//if (topic in topicCallbacks) { processMessage(topic, payload);
// topicCallbacks[topic].forEach((cb) => { cb(topic, payload) }); });
//} }
function processMessage(topic, payload) {
let found = false;
Object.keys(topicCallbacks).forEach((subscribedTopic) => { Object.keys(topicCallbacks).forEach((subscribedTopic) => {
// logger.warn(`Test: ${subscribedTopic}, ${topic}`); // logger.warn(`Test: ${subscribedTopic}, ${topic}`);
// console.log(`Test: ${subscribedTopic}, ${topic}`); // console.log(`Test: ${subscribedTopic}, ${topic}`);
if (subscribedTopic == topic) { if (subscribedTopic == topic) {
// logger.warn('1'); // logger.warn('1');
topicCallbacks[topic].forEach((cb) => { cb(topic, payload) }); topicCallbacks[topic].forEach((cb) => { cb(topic, payload) });
found = true;
} else if (subscribedTopic.endsWith('#') && } else if (subscribedTopic.endsWith('#') &&
(subscribedTopic.substring(0, subscribedTopic.length-1) == (subscribedTopic.substring(0, subscribedTopic.length-1) ==
topic.substring(0, subscribedTopic.length-1))) { topic.substring(0, subscribedTopic.length-1))) {
// logger.warn('2'); // logger.warn('2');
// console.log('2'); // console.log('2');
topicCallbacks[subscribedTopic].forEach((cb) => { cb(topic, payload) }); topicCallbacks[subscribedTopic].forEach((cb) => { cb(topic, payload) });
found = false;
} }
}); });
}); return found;
} }
function send(topic, payload) { function send(topic, payload, internalFirst = false) {
let sent = false;
if (internalFirst) {
sent = processMessage(topic, payload);
}
if (! sent) {
client.publish(topic, payload); client.publish(topic, payload);
} }
}
function register(topics, cb) { function register(topics, cb) {
if (! (topics instanceof Array)) { if (! (topics instanceof Array)) {