refactoring
This commit is contained in:
@ -27,28 +27,39 @@ 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) {
|
||||||
|
Reference in New Issue
Block a user