Mosquitto 에서 MQTT동작 (User id/password setting)

irina
WIZnet
Published in
6 min readJun 25, 2020

Mosquitto tool의 설치 및 기본 세팅은 아래의 링크가 설명이 잘되어있으니, 참고하세요.

MQTT Sever — Mosquitto

지금부터 제가 쓰는 내용은 모든 기본 세팅이 되어있다는 전제하에 동작한다는 점 유념하세요.

아마도 기본적인 MQTT동작은 위 링크의 포스팅 내용에서 확인할수 있을겁니다.

제가 설명하고 하는 내용은 MQTT Broker(이하 내용에는 MQTT Server라 칭한다)에서 User id/Clinet id/password 를 등록한 상태에서 어떻게 통신이 되는지를 설명하려고 합니다.

구성은 다음과 같이 하려고 합니다.

제가 포스팅 하고 있는 이글은구성도는 다음과 같습니다.

도스창에서 Mosquitto를 이용하여 MQTT테스트를 하려면 아래의 사항을 따라야 합니다.

- 도스창에서 MQTT Server, MQTT Client는 별도의 도스창을 열어야 하며, 해당 도스창은 관리자 권한으로 열어야 합니다.

- Mosquitto.conf파일을 변경하여Client id는 User id와 동일한 id로 동작합니다.

- MQTT Server에 접속한 Client에서 온 모든 Publish data는 연결된 모든 Client에 전송된다. 단, 해당 Topic을 Subscribe 상태여야 합니다.

- MQTT Server에 접속하는Client의 Client id는 모두 달라야하며, 같은 Client id로 접속할 경우 나중에 접속하는 MQTT Client는 disconnect 됩니다.

- Password는 암호화 되어 있는 상태를 사용해야 하며, 별도의 TXT 파일을 생성해야합니다.

주제를 크게 나누자면

1. User id와 Password등록

2. MQTT Server setting 정보

3. MQTT Server와 2개의 MQTT Clinet 접속 예 및 영상

1. User id와 Password등록

User id와 Password를 등록을 하려면

파일을 하나 만드는데, 확장자는 txt 여야해요.

저장되는 형식은 User id : Password 입니다.

xxx.txt 파일만들기

password.txt 파일을 생성했고, 해당 파일은 Mosquitto가 설치 되어 있는 곳에 넣어놨어요.

mosquitto_passwd command를 이용하여 User id, Password 등록하기

아래의 Command를 이용하여 User id와 Password를 등록하면 됩니다.

위의 command를 완료한 후 password.txt를 확인하면 아래와 같이 나타납니다.

Password.txt의 Password값은 mosquitto_passwd 명령을 이용하여 암호화된 값이 저장됩니다.

2. MQTT Server setting 정보

아래는 mosquitto_conf 파일에서 아래의 내용만 Enable했습니다.

해당 내용은 주석으로 설명되어있으니, 확인하면됩니다.

저같은 경우에는 Client id를 별도로 주지 않고, User id를 Client id로도 쓸수 있게 옵션을 변경합니다.

mosquitto_conf 파일에서 수정한 부분이 있다면, MQTT Server를 열때 옵션 -c를 사용하여mosquitto_conf 파일 을 reload 해야합니다.

3. MQTT Server와 2개의 MQTT Client 접속 예 및 영상

MQTT Client 의 Client id를 User id와 같게끔 변경했기 때문에, 각각의 MQTT Client는다른 User id를 사용하여 접속 해야합니다.

Dos에서 사용되는 Command Format

여기서 옵션 -h는 호스트 ip이므로 PC의 IP입니다.

//MQTT Server
mosquitto -c mosquitto.conf -v
//MQTT Client-1
// Subscribe
mosquitto_sub -v -t /wiznet/module/testing -p 1883 -h 192.168.0.98 -u irina -P asd123^^
//Publish
mosquitto_pub -t /wiznet/module/tested -m {"msg":"tested","deviceId":"WIZnet_xxx","pubToDmTopic":"/wiznet/chip/tested"} -p 1883 -h 192.168.0.98 -u irina -P asd123^^
//MQTT Client-2
// Subscribe
mosquitto_sub -v -t /wiznet/module/tested -p 1883 -h 192.168.0.98 -u qwerty -P 12345678
//Publish
mosquitto_pub -t /wiznet/module/testing -m {"msg":"testing”,"mac":"00:00:00:aa:bb:cc","manufacture":"wiznet"} -p 1883 -h 192.168.0.98 -u qwerty -P 12345678

다음은 Dos 에서 MQTT 동작의 영상입니다.

Dos 순서대로, MQTT Server, MQTT Client -1, MQTT Client -2로 되어있으며, MQTT동작을 확인할 수 있습니다.

.

--

--