场景
IoT 设备(当前为 IPv4 设备),每天通过 TCP 套接字向服务器发送一次有效负载。服务器有一个公共 IP 地址,设备位于路由器/NAT 后面。我将使用基于 ESP8266 的模块(即 Olimex 一个)
目标
的服务器应该能够将数据发送到任何客户端,只要它需要。我对直接客户端到客户端的通信(即从我的智能手机连接到设备)不感兴趣,就像打孔应该做的那样。
其他要求
IoT 设备可能会增长到数千个。他们的互联网连接由许多支持 4G 的路由器/调制解调器提供。每个将处理 10-20 个客户。
建议的解决方案
据我了解,一个常见的解决方案是 MQTT。客户端定期将数据发送到代理(即运行在托管服务器上的 Mosquitto),然后更新运行在同一服务器上的主 Web 应用程序。
问题
MQTT 方法是否适用于“大量”设备(1000 多个),其中大部分设备位于 4G 路由器后面?