Как узнать IP-адрес клиента MQTT при получении сообщения на стороне сервера. Я использую москитного брокера.
Как узнать IP-адрес клиента MQTT в node.js
Ответы (2)
TLDR; Вы не знаете.
Смысл протокола Pub/Sub, такого как MQTT, состоит в том, чтобы полностью разделить издателя и подписчика. Данное сообщение передается брокеру издателем, в этот момент он передает всю ответственность за это сообщение брокеру, который отправляет его клиентам, подписавшимся на тему, в которой оно было опубликовано.
В сообщении не содержится никакой информации (на уровне протокола MQTT) о том, откуда оно пришло, только тема и сохранено ли сообщение.
Если вам нужно узнать больше информации об издателе, вам нужно будет самостоятельно закодировать эту информацию в полезную нагрузку сообщения.
Я также рассмотрел большую часть этого в ответе на предыдущий вопрос.
Чтобы получить IP-адрес клиента в MQTT, вы должны сами поместить его в тело сообщения.
Если вы используете mosquito с nodejs, вы можете получить IP-адрес клиента через сетевые интерфейсы узла или другие модули узла, например здесь:
Как я могу получить локальный IP-адрес в Node.js?