TCPソケットを介してペイロードを1日1回サーバーに送信するシナリオ IoTデバイス(現在はIPv4デバイス)。サーバーにはパブリックIPアドレスがあり、デバイスはルーター/ NATの背後にあります。ESP8266に基づくモジュール(つまり、Olimexのモジュール)を使用します
目標は、サーバーは、それが必要とする時はいつでも任意のクライアントにデータを送信することができるはずです。ホールパンチングのように、クライアントからクライアントへの直接通信(つまり、スマートフォンからデバイスに接続)には興味がありません。
その他の要件 IoTデバイスは、数千まで成長する可能性があります。インターネット接続は、4G対応のルーター/モデムによって提供されます。
提案される解決策 私が理解している限り、一般的な解決策はMQTTです。クライアントは定期的にブローカー(ホスティングサーバーで実行されているMosquitto)にデータを送信します。ブローカーは同じサーバーで実行されているメインのWebアプリを更新します。
質問 Webアプリは、ブローカーを通じて必要なときにいつでも任意のクライアントにデータを送信できますか?言い換えれば、サブスクライバーは特定のパブリッシャーに非同期に(つまり、次の送信を待たずに)データを送り返すことができますか?