[nodejs] Node.js와 IoT 통신 프로토콜
본 포스트에서는 Node.js를 이용하여 IoT 장치와의 통신을 위한 주요 프로토콜에 대해 알아보겠습니다.
MQTT 프로토콜
MQTT(Message Queuing Telemetry Transport)는 경량의 발행/구독(Publish/Subscribe) 메시징 프로토콜입니다. Node.js에서는 mqtt 라이브러리를 사용하여 MQTT 클라이언트를 쉽게 구현할 수 있습니다.
예제 코드:
const mqtt = require('mqtt');
const client = mqtt.connect('mqtt://broker.example.com');
client.on('connect', function () {
client.subscribe('presence', function (err) {
if (!err) {
client.publish('presence', 'Hello, MQTT');
}
});
});
client.on('message', function (topic, message) {
console.log(topic, message.toString());
});
참고: mqtt npm 라이브러리
CoAP 프로토콜
CoAP(Constrained Application Protocol)은 IoT 환경에서 작동하는 경량 프로토콜로서, HTTP와 유사한 RESTful 통신을 제공합니다. node-coap 라이브러리를 사용하여 CoAP 클라이언트/서버를 구현할 수 있습니다.
예제 코드:
const coap = require('coap');
const req = coap.request('coap://localhost/path');
req.on('response', function(res) {
res.pipe(process.stdout);
});
req.end();
참고: node-coap 라이브러리
HTTP/HTTPS 프로토콜
Node.js에서는 기본적으로 내장된 http 및 https 모듈을 통해 HTTP 및 HTTPS 통신을 구현할 수 있습니다. 이 모듈들을 사용하여 RESTful API를 개발하거나 웹 서비스에 접속할 수 있습니다.
예제 코드:
const http = require('http');
http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello, World!');
}).listen(8080);
Node.js를 이용하여 IoT와 통신하기 위한 다양한 프로토콜을 활용할 수 있습니다. 각 프로토콜은 IoT 장치와의 소통에 있어서 고유한 특성을 가지고 있으므로 상황에 맞게 적절한 프로토콜을 선택하는 것이 중요합니다.