MQTT Publisher 상자 만들기 그 2
11994 단어 Choregraphe파이썬mqttPepper
소개
TLS MQTT Publisher 상자
마지막 상자를 복사하여 TLS MQTT Pub 상자를 만듭니다.
설정 항목
Certificate는 인증서의 파일 이름을 지정합니다. test.mosquitto.org를 사용하려면 이쪽에서 다운로드하십시오.
사용할 인증서를 다음 위치에 배치합니다.
파이썬 코드
코드는 이런 식으로 합니다. 마지막으로 거의 변하지 않습니다. crt_file 을 취득해, tls_set() 하고 있을 뿐입니다.
class MyClass(GeneratedClass):
def __init__(self):
GeneratedClass.__init__(self)
def onLoad(self):
self.framemanager = ALProxy("ALFrameManager")
self.folderName = None
def onUnload(self):
import sys
if self.folderName and self.folderName in sys.path:
sys.path.remove(self.folderName)
self.folderName = None
def onInput_onStart(self, payload):
import sys, os
self.folderName = os.path.join(
self.framemanager.getBehaviorPath(self.behaviorId), "../lib")
if self.folderName not in sys.path:
sys.path.append(self.folderName)
import paho.mqtt.client as paho
host = self.getParameter("Broker Host")
port = self.getParameter("Broker Port")
crt_file = self.getParameter("Certificate")
keep_alive = self.getParameter("KeepAlive")
topic = self.getParameter("Topic")
qos = self.getParameter("Qos")
retain = self.getParameter("Retain")
mqttc = paho.Client()
mqttc.tls_set(self.folderName + "/crts/" + crt_file)
mqttc.connect(host, port, keep_alive)
mqttc.publish(topic, payload, qos, retain)
def onInput_onStop(self):
self.onUnload()
self.onStopped()
Choregraphe로 연결
이것은 이전과 거의 같습니다.
Subscriber 쪽
Subscriber도 거의 같습니다.
tls_sub.py
import paho.mqtt.client as paho
def on_message(mqttc, obj, msg):
print("topic: " + msg.topic + ", payload: " + str(msg.payload) + ", qos: " + str(msg.qos) + ", retain: " + s\
tr(msg.retain))
if __name__ == '__main__':
mqttc = paho.Client()
mqttc.on_message = on_message
mqttc.tls_set("mosquitto.org.crt")
mqttc.connect("test.mosquitto.org", 8883, 60)
mqttc.subscribe("my/topic/tls/pepper", 0)
mqttc.loop_forever()
동작 확인
Subscriber 실행
PC에서 실행하고 주제에 대한 메시지를 받기 위해 기다립니다.
$ python tls_sub.py
Publisher 실행
Choregraphe에서 프로그램을 실행하고 메시지를 보냅니다.
결과 표시
Publisher -> Broker -> Subscriber와 메시지가 전달되어 Subscriber 측에서 표시되었습니다.
$ python tls_sub.py
topic: my/topic/tls/pepper, payload: TLS Hello World from Pepper, qos: 0, retain: 0
통신 내용 확인
일단 SSL/TLS가 되어 있거나 패킷을 캡처해 봅니다. 내용의 세부 사항까지는 보지 않지만, 무엇인가 SSL/TLSv1 로 교환하고 있는 것 같은 것을 알 수 있습니다.
감상
Reference
이 문제에 관하여(MQTT Publisher 상자 만들기 그 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Suna/items/f0d0b1d24d24e5a172a2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)