【发布时间】:2017-07-22 12:16:18
【问题描述】:
如何在服务器端接收消息时知道 MQTT 客户端的 IP 地址。我正在使用蚊子经纪人。
【问题讨论】:
标签: javascript node.js mqtt mosquitto
如何在服务器端接收消息时知道 MQTT 客户端的 IP 地址。我正在使用蚊子经纪人。
【问题讨论】:
标签: javascript node.js mqtt mosquitto
TLDR;你没有。
像 MQTT 这样的 Pub/Sub 协议的重点是完全解耦发布者和订阅者。给定消息由发布者传递给代理,此时它将对该消息的所有责任移交给代理,代理将其发送给订阅了它发布的主题的客户端。
消息(在 MQTT 协议级别)中没有关于它来自哪里的信息,只有主题以及它是否是保留的消息。
如果您需要了解有关发布者的更多信息,则需要自己将该信息编码到消息负载中。
我还在answer 中对您之前的问题进行了介绍。
【讨论】:
要在 MQTT 中获取客户端的 IP 地址,您必须自己将其放入消息正文中。
如果您在 nodejs 中使用蚊子,您可以通过节点网络接口或其他节点模块获取客户端 IP,如下所示:
How can I get the local IP address in Node.js?
【讨论】: