티스토리 뷰

 

1. 모스키토

MQTT 브로커로 모스키토 사용

참고 : https://dejavuhyo.github.io/posts/mqtt-broker-mosquitto-install/

a. 모스키토 설치

b. 포트 확인

 
C:\Windows\system32>netstat -an​

1833이 기본 포트로 확인된다

c. 모스키토 시작 및 종료

- 통신로그보기

C:\Program Files\mosquitto>mosquitto -v

 

- 실행 ****

C:\Program Files\mosquitto>net start mosquitto

or

시작메뉴 - 서비스

- 종료

C:\Program Files\mosquitto>net stop mosquitto

2. 아나콘다 파워쉘에서 

a. 파일 경로에 MQTT를 설치해 줘야한다.

pythonTest 폴더에서 - pip install paho-mqtt      설치 

nodejsTest 폴더에서 - npm install mqtt           설치



pythonTest폴더에 python subscribe.py       파일만들어주기

pythonTest폴더에 python publish.py         파일만들어주기

nodejsTest 폴더에 node subscribe.js        파일만들어주기

notejsTest 폴더에 node publish.js          파일만들어주기

b. 경로에 MQTT를 설치해 줘야한다.

(노드 : 백엔드)

>publish.js

const mqtt = require('mqtt')
const client = mqtt.connect('mqtt://localhost:1883')

client.publish('common','hello_nodejs ')

>sub.js

const mqtt = require('mqtt')
const client = mqtt.connect('mqtt://localhost:1883')

client.subscribe('common');
client.on('message', function(topic, mess){
  console.log(mess.toString())
});

 

(파이썬 IoT)

>publish.py

import paho.mqtt.client as mqtt
import json

def on_connect(client, userdata, flags, rc):
    if rc == 0:
        print("connected OK")
    else:
        print("Bad connection Returned code=", rc)

def on_disconnect(client, userdata, flags, rc=0):
    print(str(rc))

def on_publish(client, userdata, mid):
    print("In on_pub callback mid= ", mid)

# 새로운 클라이언트 생성
client = mqtt.Client()
# 콜백 함수 설정 on_connect(브로커에 접속), on_disconnect(브로커에 접속중료), on_publish(메세지 발행)
client.on_connect = on_connect
client.on_disconnect = on_disconnect
client.on_publish = on_publish
# address : localhost, port: 1883 에 연결
client.connect('localhost', 1883)
client.loop_start()
# common topic 으로 메세지 발행
client.publish('common', "hello_python", 1)
client.loop_stop()
# 연결 종료
client.disconnect()

 

>subscribe.py

import paho.mqtt.client as mqtt

def on_connect(client, userdata, flags, rc):
    if rc == 0:
        print("connected OK")
    else:
        print("Bad connection Returned code=", rc)

def on_disconnect(client, userdata, flags, rc=0):
    print(str(rc))

def on_subscribe(client, userdata, mid, granted_qos):
    print("subscribe 하는중 ")

def on_message(client, userdata, msg):
    #호출시 실행할 콜백함수
    print(str(msg.payload.decode("utf-8")))

# 새로운 클라이언트 생성
client = mqtt.Client()
# 콜백 함수 설정 on_connect(브로커에 접속), on_disconnect(브로커에 접속중료), on_subscribe(topic 구독),
# on_message(발행된 메세지가 들어왔을 때)
client.on_connect = on_connect
client.on_disconnect = on_disconnect
client.on_subscribe = on_subscribe
client.on_message = on_message
# address : localhost, port: 1883 에 연결
client.connect('localhost', 1883)
# common topic 으로 메세지 발행
client.subscribe('common', 1)
client.loop_forever()
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함