Как определить идентификатор клиента при получении сообщения? - PullRequest
0 голосов
/ 08 ноября 2019

Я устанавливаю свои устройства MQTT. Мой код для отправки с ESP8266 + NodeMCU v2 выглядит примерно так:

client.publish(ANSWER_TEMPERATURE_TOPIC, buffer);

Где ANSWER_TEMPERATURE_TOPIC равно «ответ / узел_1 / температура» и buffer, например 22.10 . Я установил свое устройство при подключении к const char* CLIENT_ID = "node_1";

client.connect(CLIENT_ID, MQTT_USERNAME, MQTT_PASSWORD)

Есть ли возможность проверить этот идентификатор клиента во время получения сообщения? Я запускаю в моем Raspberry Pi эту команду:

 mosquitto_sub -d -u pi -P channel -t answer/node_1/temperature

И ответ

Client mosqsub/1021-raspberryp sending CONNECT
Client mosqsub/1021-raspberryp received CONNACK
Client mosqsub/1021-raspberryp sending SUBSCRIBE (Mid: 1, Topic: 
answer/node_1/temperature, QoS: 0)

Client mosqsub/1021-raspberryp received SUBACK
Subscribed (mid: 1): 0

Client mosqsub/1021-raspberryp received PUBLISH (d0, q0, r0, m0, 
'answer/node_1/temperature', ... (5 bytes))
21.8

Есть ли возможность увидеть этот CLIENT_ID? В будущем я хочу создать PHP-файл для получения этого сообщения.

1 Ответ

0 голосов
/ 08 ноября 2019

Вы не можете, информация об отправителе, закодированная в сообщении, отсутствует, если вы сами не добавите ее в полезную нагрузку или в теме, в которой публикуете сообщение.

...