Showing
1 changed file
with
22 additions
and
6 deletions
1 | const mqtt = require('mqtt'); | 1 | const mqtt = require('mqtt'); |
2 | +const clientList = []; | ||
2 | 3 | ||
3 | -exports.mqttOn = (hosting) => { | 4 | +exports.mqttOn = async (hosting) => { |
5 | + const filterIndex = clientList.findIndex(client => { | ||
6 | + return (client.options.clientId === hosting.clientId | ||
7 | + && client.options.host === hosting.host | ||
8 | + && client.options.port === hosting.port) | ||
9 | + }); | ||
10 | + | ||
11 | + if(filterIndex === -1) { | ||
4 | const client = mqtt.connect(hosting); | 12 | const client = mqtt.connect(hosting); |
13 | + clientList.push(client); | ||
5 | client.on('connect', () => { | 14 | client.on('connect', () => { |
6 | - console.log('Connected : ', client.connected) | 15 | + console.log('Client connected: ', client.connected); |
7 | }); | 16 | }); |
8 | 17 | ||
9 | return client; | 18 | return client; |
10 | -} | 19 | + } else { |
20 | + return clientList[filterIndex]; | ||
21 | + }; | ||
22 | +}; | ||
11 | 23 | ||
12 | exports.mqttSubscribe = (client, topic) => { | 24 | exports.mqttSubscribe = (client, topic) => { |
13 | client.subscribe(topic); | 25 | client.subscribe(topic); |
14 | client.on('message', (topic, message, packet) => { | 26 | client.on('message', (topic, message, packet) => { |
15 | - console.log('topic : ', topic); | 27 | + console.log('\x1b[1;37mtopic : ', topic, '\x1b[0m'); |
16 | - console.log('message : ', message.toString()); | 28 | + console.log('\x1b[1;37mmessage : ', message.toString(), '\x1b[0m', '\n'); |
17 | }); | 29 | }); |
18 | -} | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
30 | +}; | ||
31 | + | ||
32 | +exports.mqttPublishMessage = (client, topic, message) => { | ||
33 | + client.publish(topic, message, () => {}); | ||
34 | +}; | ||
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment