저전력 및 낮은 대역폭에서도 사용할 수 있도록 설계된 메시징 프로토콜
구조

- publisher: 메세지를 발행하는 역할
- subscriber: 메세지를 구독하는 역할
- broker: 메세지를 publisher에서 받아와 subscriber에게 전달하는 역할
예를들어
- MQTT클라이언트가 메시지를 특정 Topic에 발행하면 이 채널을 구독한 사람들에게 메시지가 간다.
- 내가 인스타로 아이유 팔로우하기 (Sub)
- 아이유가 게시글 올린다. (Pub)
- 나에게 알림이 온다. (아이유 팔로우 하지 않은 사람에게는 알림이 가지 않는다.)
QoS
- 0단계 : 메시지는 한 번만 보내면 클라이언트와 브로커는 전달 확인 응답을 위한 추가 단계를 밟지 않는다.
- 1단계 : 메시지는 확인 응답을 수신할 때까지 여러 번 송신자로부터 재시도된다.
- 2단계 : 송신자와 수신자는 2단계 핸드셰이크에 참여함으로써 오직 하나의 메시지 사본만을 수신하는 것을 보장한다.
JS
npm install
const MQTTURL = `wss://${window.location.host}/mqtt`;
client.current = mqtt.connect(MQTTURL, {
clientId: `clientID`,
username: 'username',
password: 'password',
});
client.current.subscribe(topic, (err) => {
if (err) console.log("구독실패")
})
client.current.publish(topic, message)