yoncho`s blog

[Mosquitto] 2. Publisher 본문

기술, 나의 공부를 공유합니다./MQTT

[Mosquitto] 2. Publisher

욘초 2023. 6. 22. 23:54

*본 글은 node.js 언어로 Docker에 올라간 mosquitto (mqtt broker)에 topic을 발행 및 topic으로 payloag를 전달 하는 Publisher Code 예제입니다.

 

목차

1. publisher 코드 작성 (mqtt-publisher-IBU.js)

2. 작성한 코드 실행 후 Broker(mosquitto) 확인

 

Publisher 코드 작성 (파일 명 : mqtt-publisher-IBU.js)
mqtt-publisher-IBU.js 파일 생성

$user> code mqtt-publisher-IBU.js

 

코드 작성

const crypto = require('crypto')
const mqtt = require('mqtt') //npm install --save mqtt 
const host = 'localhost' //연결한 Broker 주소
const port = '1883' //연결할 Port

const connectUrl = `mqtt://${host}:${port}`
const client = mqtt.connect(connectUrl) 
const topic = 'GV60/IBU/'

setInterval(() => {
   client.publish(topic, `7E8,08,${crypto.randomBytes(8).toString('hex')}`, {qos:0, retain: false}, (error)=>{
     if(error){
        console.error(error)
     }
   }); 
   // 8byte 난수 hex 코드 발생
}, 
100); //interval (unit: ms)


/* QoS 수준 (0,1,2)
0 : 그냥 한번만 쏜다. (송수신 실패 상관 없이 like UDP)
1 : 적어도 한번 수신된다. 수신 성공할 때까지 전송
2 : 적어도 한번 수신하는데 중복 처리해서 무조건 정확하게 1번만 수신되도록,, 

사용법 :
client.publish("topic", "data", {qos:2}); 이렇게 publish 하면 된다.
*/

 

 

파일 실행 후 Broker 확인

파일 실행

$user> node mqtt-publisher-IBU.js

 

Broker (received PUBLISH에 성공함)

'기술, 나의 공부를 공유합니다. > MQTT' 카테고리의 다른 글

[RabbitMQ] 2. Queue  (0) 2023.06.24
[RabbitMQ] 1. Exchange  (0) 2023.06.24
[RabbitMQ] 0. RabbitMQ ?  (0) 2023.06.22
[Mosquitto] 3. Subscriber  (0) 2023.06.22
[Mosquitto] 1. Broker  (0) 2023.06.22
Comments