x 개의 장치에 대해 ax 수의 MQTT 주제를 작성해야합니까?


9

현재 컨트롤러 (클라이언트)가 센서 데이터를 서버로 보내고 서버에서 추가 데이터와 함께 피드백을받는 프로젝트에서 통신을 위해 MQTT 프로토콜을 사용합니다. 클라이언트와 서버에 대해 2 개의 개별 주제가 있습니다.

예를 들어 :

주제 1-클라이언트 (서브 스크 리브 ), 서버 (PUBLISHES) 주제 2-클라이언트 (퍼블릭 ), 서버 (
서브 스크립)

그러나이 프로젝트가 더 큰 응용 프로그램의 유스 케이스 인 경우 약 5000 개의 장치를 어딘가에 설치해야한다고 가정 해 봅시다.

따라서 클라이언트와 서버 모두에 대해 5000 개의 다른 주제를 작성해야합니까? 또는 주제가 적 으면 어떻게 할 수 있습니까?


1
왜 많은 주제를 갖는 것이 문제라고 생각합니까?
hardillb

1
소프트웨어가 모든 것을 관리해야하기 때문일 수 있습니다.
Mawg는 모니카

1
@hardillb 문제가되지 않습니다. 그냥 궁금해서 ... MQTT 주제에 하위 주제가있을 수 있습니까?
ron123456

2
물론, 주제는 계층 적이므로 모든 체계를 고안 할 수 있습니다. Sparkplug s3.amazonaws.com/cirrus-link-com/… 에는 엣지 노드 및 엣지 노드 뒤에있는 장치마다 몇 가지 주제가 있습니다.
Gambit 지원

답변:


5

클라이언트에서 서버로 클라이언트 ID를 페이로드로 압축 할 수 있습니다 (예 : JSON 인 경우 키 중 하나는 클라이언트 ID 값을 가질 수 있음).

브로커가 메시지를 브로드 캐스트하지 않고 연결된 클라이언트로 직접 보내려면 서버에서 클라이언트로의 응답에 client-id가 포함되어야합니다.

동시에 "requests / +"와 같은 서버를 구독 할 수 있으며 각 클라이언트는 "request / {client-id-1}", "request / {client-id-2}"및 서버에 게시합니다. 하나의 구독으로 둘 다 수신됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.