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