2016-11-10 3 views
0

저는 python (project pages)에 paho.mqtt를 사용하려고합니다. 모두 잘 작동합니다. 내가 가진 유일한 문제는 메시지를 보낸 사람을 알아내는 것이 매우 유용하다는 것입니다. 나는 소스 코드를 보았지만 client 변수가 on_message에서 전달 된 클라이언트가 메시지를 게시 한 클라이언트의 세부 정보에 연결하는 경우 (내 생각에 첫 번째 옵션이라고 생각한다) 내 머리 글자를 찾지 못했습니다.paho.mqtt 누가 페이로드를 보낸 사람을 알아보십시오

그래서 질문은 - 누가 (사용자 이름)이 메시지를 보냈는지 확인할 수 있습니까?

답변

1

MQTT 프로토콜은 가능한 한 가중치가 낮도록 설계되었으므로 메시지 머리글에 특정 주제에 메시지를 전달할 수있는 절대 최소값이 포함됩니다. 헤더에 다른 것을위한 공간이 없습니다.

MQTT는 또한 Pub/Sub 프로토콜이기 때문에이 유형의 프로토콜의 핵심 기능 중 하나는 가능한 게시자와 구독자를 분리하는 것입니다. 즉, 게시자는 얼마나 많은 구독자가 있는지 관심을 두지 않아야하며 구독자는 흥미있는 주제에 관한 한 정보의 출처를 신경 쓰지 않아야합니다.

메시지 항목을 선택한 다음 직접 페이로드에 추가해야합니다.

+0

그래서 10 명의 다른 게시자가 있다면 (예 : 10 명의 다른 고객) 페이로드에 추가하지 않으면 누가 보낸 것인지 찾을 수 없습니다. – Greg0ry

+0

예, 다른 옵션은 각 고객이 자신의 주제 (공통 접두어로)에 게시하고 가입자가 와일드 카드 가입을 사용하고 주제를 사용하여 출처를 결정할 수 있다는 것입니다 – hardillb