MQTT 프로 토 콜 nodejs 에서 의 사용

14253 단어 node.js웹 개발
MQTT 협의 가 사물 인터넷 에서 의 위 치 는 말 할 필요 도 없다. 사물 인터넷 개발 을 하면 이 협 의 를 사용 할 수 있다. 마치 농 구 를 할 때 빠 르 고 교묘 하 게 패스 하 는 방법 을 아 는 것 처럼 각 부품 간 의 소식 전달 이 매우 간단 하고 편리 해 졌 다. 본인 의 풋내기 도 그 중의 장점 을 발견 할 수 있다. 언젠가 쇠고기 가 되면 깊이 이해 할 수 있 고 앞날 이 밝 을 것 이 라 고 생각한다.쓸데없는 소리 하지 말고 이 협의 가 NODEJS 에서 의 간단 한 응용 을 살 펴 보 자.
먼저, MQTT 의 장점 은 모두 가 알 아야 한다. 본 협의의 특징 은 경량급 (비용 이 적 고 고정된 길이 의 머리 는 2 바이트), 대리 의 '발표 / 구독' 모델 을 바탕 으로 하 는 정보 전송, 협의 가 간결 하고 작고 확장 성 이 강 하 며 유량 을 절약 하고 전 기 를 절약 하 는 것 이다. 또한 사물 인터넷 조건 에서 신뢰성 이 없고 계산 능력 이 낮은 네트워크 전송 조건 에서현재 이미 기업 분야 에 응용 되 었 고 어느 정도 단점 도 있다. 예 를 들 어 인터넷 에서 이 협의 가 성숙 하지 않 고 복잡 하 며 서버 구성 요소 인 rsmb 가 시작 되 지 않 고 하드웨어 를 배치 하 는 원가 가 비교적 높 지만 이것 은 nodejs 에서 성립 되 지 않 고 서버 는 nodejs 운영 환경 만 있 으 면 MQTT 서 비 스 를 편리 하 게 구축 할 수 있다 고 허튼소리 를 한다.다음은 기본 사용 코드 를 설명 한다.
서버 코드:
4. 567913. mosca 서비스 구축 이 완 료 된 후에 소식 을 발표 할 수 있 습 니 다. 코드 는 다음 과 같 습 니 다.
4. 567913. 그리고 다른 클 라 이언 트 에서 정 보 를 구독 할 수 있 습 니 다.
var mosca = require('mosca');//       
var MqttServer = new mosca.Server({
    port: 8000
});//          ,        
MqttServer.on('clientConnected', function(client){//    
    console.log('client connected', client.id);
});
/**
 *   MQTT    
 **/
MqttServer.on('published', function(packet, client) {//             
    var topic = packet.topic;
    console.log(packet);
    switch(topic){
        case 'test':
            console.log('message-publish', packet.payload.toString());
            //MQTT      
            MqttServer.publish({topic: 'other', payload: 'sssss'});
            break;
        case 'other':
            console.log('message-123', packet.payload.toString());
            break;
    }
});

MqttServer.on('ready', function(){      
    console.log('mqtt is running...');
});


그래서 이 간단 한 MQTT 프로 토 콜 은 nodejs 에서 이 루어 졌 다.
var mqtt = require('mqtt');
var client = mqtt.connect('mqtt://192.168.0.182:8000');//      
//client.subscribe('presence');
var num = 0;
var qtt={};//    (      、   )
qtt.aa='asds';
qtt.bb='  ';
setInterval(function (){//     ‘test’   
    client.publish('test',JSON.stringify(qtt),{qos:1, retain: true});// 'Hello mqtt ' + (num++)
}, 1000);
 
  
var mqtt = require('mqtt');
var client= mqtt.connect('mqtt://192.168.0.182:8000');
client.subscribe('test',{qos:1});//     test   
client.on('message', function (topic, message) {
    console.log(message.toString());
});
var MqttServer = new mosca.Server({
    port: 8000
});//          ,        
MqttServer.on('clientConnected', function(client){//    
    console.log('client connected', client.id);
});
/**
 *   MQTT    
 **/
MqttServer.on('published', function(packet, client) {//             
    var topic = packet.topic;
    console.log(packet);
    switch(topic){
        case 'test':
            console.log('message-publish', packet.payload.toString());
            //MQTT      
            MqttServer.publish({topic: 'other', payload: 'sssss'});
            break;
        case 'other':
            console.log('message-123', packet.payload.toString());
            break;
    }
});

MqttServer.on('ready', function(){      
    console.log('mqtt is running...');
});






좋은 웹페이지 즐겨찾기