Networking 如何在没有静态IP的情况下随时随地访问我的物联网设备

Networking 如何在没有静态IP的情况下随时随地访问我的物联网设备,networking,ip,lan,iot,Networking,Ip,Lan,Iot,我可以访问我的物联网设备,如果我给它分配一个静态IP和一个类似dydns的服务。但我希望能够不依赖任何东西就达到它 我在想,我的物联网设备可以在每次启动时在数据库中写入其IP地址,以便服务器上的脚本知道其IP 问题是IP将对应于我的热点IP。我缺少连接部分“热点-->物联网设备” 例如,我希望能够在热点模式下将我的物联网设备连接到我的移动电话。一种方法是重新设计您的系统:如果物联网设备在联机时始终连接(并保持连接)到服务器组件(具有众所周知/不变的主机名/IP地址),然后,服务器可以始终通过该T

我可以访问我的物联网设备,如果我给它分配一个静态IP和一个类似dydns的服务。但我希望能够不依赖任何东西就达到它

我在想,我的物联网设备可以在每次启动时在数据库中写入其IP地址,以便服务器上的脚本知道其IP

问题是IP将对应于我的热点IP。我缺少连接部分“热点-->物联网设备”


例如,我希望能够在热点模式下将我的物联网设备连接到我的移动电话。

一种方法是重新设计您的系统:如果物联网设备在联机时始终连接(并保持连接)到服务器组件(具有众所周知/不变的主机名/IP地址),然后,服务器可以始终通过该TCP连接向物联网设备发送命令,而无需知道物联网设备的主机名/IP地址,也无需从互联网进行联系,即这种方法在设备端对防火墙友好


这就是使用MQTT时IoT的架构:设备向内连接到MQTT代理(即服务器)。MQTT还消除了服务器应用程序本身连接到客户机的需要。MQTT使用一个名为“发布/订阅”的概念和预先约定的“主题”-客户端将订阅一个“命令”主题,服务器应用程序将命令发布到该主题,代理处理将命令转发到设备。来自设备的传入数据发布到另一个主题,服务器应用程序订阅该主题,代理转发发布的数据。您可以尝试发布/订阅示例(使用浏览器,但实际设备也可以连接到同一台服务器),例如使用

一种方法是重新设计您的系统:如果IoT设备在线时始终连接(并保持连接)到服务器组件(具有众所周知的/不变的主机名/IP地址),然后,服务器可以始终通过该TCP连接向物联网设备发送命令,而无需知道物联网设备的主机名/IP地址,也无需从互联网进行联系,即这种方法在设备端对防火墙友好


这就是使用MQTT时IoT的架构:设备向内连接到MQTT代理(即服务器)。MQTT还消除了服务器应用程序本身连接到客户机的需要。MQTT使用一个名为“发布/订阅”的概念和预先约定的“主题”-客户端将订阅一个“命令”主题,服务器应用程序将命令发布到该主题,代理处理将命令转发到设备。来自设备的传入数据发布到另一个主题,服务器应用程序订阅该主题,代理转发发布的数据。您可以尝试发布/订阅示例(使用浏览器,但真实设备也可以连接到同一服务器),例如

我是否应该寻找MQTT来将物联网设备连接到服务器?(我指的是保持连接的部分)是的,显然你可以做到。您也可以使用公共mqtt服务器作为短期解决方案,您的设备连接到该服务器并订阅所选的命令主题。然后在您的web服务器中,您可以使用paho浏览器/javascript客户端发布到命令主题。还有其他更为自主开发的方法来处理单个设备,但一旦您想要扩大规模,这些方法将变得更加复杂。如果您只需要一个设备,那么一个简单的python套接字服务器可能就足够了,让您的web服务器连接到该设备以发送消息。HTH Barny我应该寻找MQTT来将物联网设备连接到服务器吗?(我指的是保持连接的部分)是的,显然你可以做到。您也可以使用公共mqtt服务器作为短期解决方案,您的设备连接到该服务器并订阅所选的命令主题。然后在您的web服务器中,您可以使用paho浏览器/javascript客户端发布到命令主题。还有其他更为自主开发的方法来处理单个设备,但一旦您想要扩大规模,这些方法将变得更加复杂。如果您只需要一个设备,那么一个简单的python套接字服务器可能就足够了,让您的web服务器连接到该设备以发送消息。巴尼