0

私はインターネット上に公開サービスを提供している場合があり、サーバーが必要に応じて通常のホームネットワークにある組み込みデバイスを特別に設計したものに接続できるようにしたいと考えています。

デバイスがサーバーをポーリングして更新などを取得できることは知っていますが、1)サーバーが何かを実行してから、デバイスが更新をポーリングするまでに遅延が発生します。2)無駄なトラフィックが(時間の経過とともに)大量に生成されます。

誰かがこれを行う方法について何か提案がありますか?ただし、私の最初の方法は、組み込みデバイスでUPNPを使用して、ホームルーターでポート転送ルールを生成し、そのポートをサーバーに登録することです。サーバーは、そのアドレスへのHTTPリクエストを生成できます(httpを使用すると、途中でファイアウォールなどによってブロックされることなく、ルーティングなどが行われます)。デバイスが転送ルールを作成できない場合は、ポーリング方式に戻ります。

これは正しいと思いますか?誰かがこの種のものと共有できる経験がありますか?(クライアントは組み込みLinux、サーバー.NETではc ++になります)。

4

1 に答える 1

0

多くは、これが使用されると思われるデバイス/ネットワークの数と、それらのソフトウェア/構成をどのように制御できるかによって異なります。

UPNPについて話しているので、クライアントネットワークがたくさんあることを意味します。ルーターの構成/ハードウェアを制御できない限り、UPNPソリューションを確実に機能させるために多くの問題が発生します。

また、組み込みデバイスが実際のIPアドレスを持たないことを示唆するポートフォワーディングについても言及しています。

ブロッキングを回避するためにHTTPを使用したいとおっしゃっていますが、ファイアウォールやルーターなどの大部分はそれほどスマートではありません。ブロッキングは純粋にポート番号で行われます。NATルーターの背後に複数のデバイスがある場合、HTTPコンテンツに基づいて要求を中継するコントローラーを実装しない限り、デバイスをアドレス指定するために非標準のポートを使用する必要があります。

私が見ることができる唯一の実用的な解決策は、組み込みデバイスをサーバーに接続し、イベントが発生するのを待つことです。

C。

于 2010-01-08T10:45:06.870 に答える