나는 모기를 설치 한 raspberry pi
이 있습니다. 나는 pub와 sub를 사용하여 pi와 나의 우분투 기계 사이에서 메시지를주고 받는다. 나는 iot.conf
파일을 만들어 /etc/mosquitto/conf.d/iot.conf
에 넣었다. 파일의 내용은 다음과 같은 :모스키토 중개자에서 오프라인 메시지를 저장하는 방법
connection CONIOT log_type all address 192.168.1.154:8883 remote_clientid sensor1 bridge_cafile /etc/ssl/certs/ca-certificates.crt try_private false cleansession true start_type automatic bridge_insecure false bridge_protocol_version mqttv311 bridge_tls_version tlsv1 notifications false
topiC# out 0 sensor/sensor1 sensor/sensor1 topiC# in 0 sensor/sensor1 sensor/sensor1
IP 주소는 내 라즈베리 파이의 IP 주소입니다. 나무 딸기 파이에 나는 센서 1 데이터를 게시하는 작은 파이썬 스크립트를 만들었습니다. 내 우분투 컴퓨터에서 나는 아래의 명령을 사용하여 데이터를 수신 할 수 있습니다
mosquitto_sub -t sensor/sensor1 -h 192.168.1.154
를 내가 주제와 호스트의 IP 주소를 준 위의 명령에서. 그래서이 방법으로 나는 pi로부터 모든 메시지를받을 수 있습니다. 그러나 pi가 오프라인 상태가되는지 (wifi/lan이 없는지) 테스트하고 싶다면 메시지가 pi에 로컬로 저장되고 온라인 상태가되면 모든 메시지를받을 수 있습니까?
위의 구성으로 테스트했지만 오프라인 메시지를 수신하지 못했습니다. 내역 here에 따라 cleansession
을 true로 설정했습니다.
누구든지 내가 실수하고있는 부분을 지적 할 수 있습니까? pi가 wifi/lan에 연결되어 있지 않을 때 mosquitto가 오프라인 메시지를 저장하려고합니다. 어떻게 테스트 할 수 있습니까? 여기
는 /etc/mosquitto/mosquitto.conf 파일의 내용이다 : 그것은 어떤 메시지를 대기 폐기하는 브로커를 지시하기 때문에 당신이 어떤 큐에 메시지를받지 않습니다# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
안녕. 정보 주셔서 감사합니다. 나는 고정 된 clientid를 사용하여 언급 한 부분을 얻지 못했습니다. 다시 설명해 주시겠습니까? 우분투 쪽에서는 일반적으로 주제와 호스트 이름에 대해'mosquitto_sub' 명령에 -t와 -h를 사용하고 있습니다. 'mosquitto_sub' 명령으로 클라이언트를 추가 할 필요가 있습니다. 또한 당신이 참조하고있는 클라이언트는 iot.conf 파일에'remote_clientid sensor1'을 언급 한 것처럼 sensor1입니다. 감사합니다 –
당신의 질문에 어떤 데이터가 흐르는 지 분명하지 않습니다. 그러나 메시지는 특정 클라이언트에 의해 누락 된 메시지를 복구하려는 경우 각 클라이언트에 대해 클라이언트 ID를 수정해야합니다 (브리징 할 때 브로커는 클라이언트입니다). – hardillb
데이터가 파이에서 우분투로 흘러갑니다. 나는 pi로 센서를 연결했습니다. 나는'paho-mqtt' 파이썬 라이브러리를 사용하여 메시지를 게시하고 있습니다. 우분투 컴퓨터에서 나는 mosquitto_sub를 사용하여 그것을 받고 있습니다.질문에 설명 된대로 구성을 완료하고 모스 킷토에서 사용하기 위해 /etc/mosquitto/conf.d/에 저장했습니다. 이것은 내 설정입니다 –