vue 에서 mqtt 서버 를 이용 하여 실시 간 통신 을 실현 하 는 절차 기록
4936 단어 mqtt즉시커 뮤 니 케 이 션
MQTT(Message Queuing Telemetry Transport,메시지 큐 원 격 측정 전송)는 IBM 이 개발 한 인 스 턴 트 메 신 저 프로 토 콜 로 사물 인터넷 의 중요 한 구성 부분 이 될 수 있다.이 협 의 는 모든 플랫폼 을 지원 하 며 거의 모든 인터넷 물품 을 외부 와 연결 시 켜 센서 와 브레이크(예 를 들 어 트 위 터 를 통 해 집 을 연결 시 키 는 것)의 통신 프로 토 콜 로 사용 된다.
MQTT 는 적은 코드 와 대역 폭,원 격 장치 로 연결 할 수 있 는 프 록 시 기반 의 게시/구독 메시지 전송 프로 토 콜 입 니 다.예 를 들 어 위성 과 대리 연결 을 통 해 전화 걸 기와 의료 보건 제공 자 를 연결 하고 일부 자동화 또는 소형 설비 에 있 으 며 작고 전 기 를 절약 하 며 협의 비용 이 적 고 효율 적 으로 1 과 여러 수신 자 에 게 정 보 를 전달 할 수 있 기 때문에 응용 설비 에 도 적용 된다.
vue mqtt 서버 를 이용 하여 실시 간 통신 실현
대부분의 항목 에서 앞 뒤 단 교 류 는 전단 요청 백 엔 드 의 인터페이스 일 뿐 데 이 터 를 받 은 후에 처리 합 니 다.얼마 전에 제 가 가지 고 있 는 항목 은 mqtt 를 사용 해 야 합 니 다.사용 한 후에 정말 신기 합 니 다.구독 만 하면 실시 간 으로 데 이 터 를 얻 을 수 있 습 니 다.쓸데없는 말 은 하지 않 습 니 다.동생 이 절 차 를 밟 아 드 리 겠 습 니 다!
1.vue 프로젝트 에 mqtt.js 설치
npm install mqtt --save
2.프로젝트 의 main.js 또는 필요 한 vue 페이지 에서 참조
import mqtt from 'mqtt'
3.vue 페이지 의 data 에서 client 대상 을 정의 하여 뒤에서 사용 하기에 편리 합 니 다.
client: {}
ok,다음은 중점 입 니 다.우선 mqtt 를 연결 해 야 합 니 다.mqtt 를 연결 하 는 방법 은 리 셋 함수 가 있 습 니 다.저 는 다음 에 구독 방법 을 연결 성공 후의 리 셋 에 쓰 겠 습 니 다.이렇게 하면 오류 가 발생 하지 않 고 코드 를 올 릴 수 있 습 니 다!4.mqtt 연결 및 구독
//
connect() {
let options = {
username: "xxx",
password: "xxxx",
cleanSession : false,
keepAlive:60,
clientId: 'mqttjs_' + Math.random().toString(16).substr(2, 8),
connectTimeout: 4000
}
this.client = mqtt.connect('ws://192.168.xxx.xx:8083/mqtt',options);
this.client.on("connect", (e)=>{
console.log(" :",e);
// 'top/#', 'three/#' '#'
this.client.subscribe(['top/#', 'three/#', '#'], { qos: 1 }, (err)=> {
if (!err) {
console.log(" ");
// “pubtop” 'hello,this is a nice day!'
this.publish("pubtop", 'hello,this is a nice day!')
} else {
console.log(' !')
}
});
});
//
this.reconnect()
//
this.mqttError()
//
this.getMessage()
}
5.발표 방법
// @topic @message
publish(topic,message) {
if (!this.client.connected) {
console.log(' ')
return
}
this.client.publish(topic,message,{qos: 1},(err) => {
if(!err) {
console.log(' '+topic+ " ")
}
})
}
6.위 에서 구독 한 세 가지 주제 의 정 보 를 감청 하고 받는다.
//
getMessage() {
this.client.on("message", (topic, message) => {
if(message) {
console.log(' ',topic,' ',message.toString())
const res = JSON.parse(message.toString())
//console.log(res, 'res')
switch(topic) {
case 'top/#' :
this.msg = res
break;
case 'three/#' :
this.msg = res
break;
case 'three/#' :
this.msg = res
break;
default:
return
this.msg = res
}
this.msg = message
}
});
},
7.서버 연결 여부 감청 실패
//
mqttError() {
this.client.on('error',(error) => {
console.log(' :',error)
this.client.end()
})
},
8.구독 취소
//
unsubscribe() {
this.client.unsubscribe(this.mtopic, (error)=> {
console.log(' '+ this.mtopic+' ',error)
})
},
9.연결 끊 기
//
unconnect() {
this.client.end()
this.client = null
console.log(' !')
},
10.감청 서버 재 접속
//
reconnect() {
this.client.on('reconnect', (error) => {
console.log(' :', error)
});
},
총결산vue 에서 mqtt 서버 를 이용 하여 인 스 턴 트 메 신 저 를 실현 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 vue 는 mqtt 인 스 턴 트 메 신 저 내용 으로 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Qiita 조회수를 MQTT로 기록전회에 계속해서 MQTT로 AWS IoT에 Publish 합니다만, 이번은, Qiita API를 이용해 자신의 투고의 열람수를 정기적으로 취득해, 축적하고 싶습니다. ① 우선은, 자신이 투고한 기사의 일람을 취득합니...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.