2016-04-25 16 views
0

私は1台のサーバと複数のクライアントを持っています。サーバーは、それぞれのデバイスでシェルスクリプトを実行する必要があります。数千のデバイスがある可能性があるため、単純なソケットでは不可能です。また、サーバーとデバイスは常にソケット経由で接続する必要があります。多くの検索の後、私は解決策がNAT-Tであるかもしれないことを発見しました。しかし、私はそれを使う方法が分からない、あるいは別の解決法があるかどうかは分かりません。 クライアントとサーバーで何をすべきか教えてください。サーバからリモートでシェルスクリプトを実行

+0

したがって、各デバイスでsshを使うのか?それを行うnodejsライブラリがあります。あなたがソケットを開いている場合(あなたが持っているか持っていないか分からない場合)、子プロセス通信と同様のものを使うことができますか?なぜNATを使用しますか?それは、ノード外のネットワーク層の問題に似ています。サーバーからデバイスにアクセスできるかどうか、またはデバイスのみがサーバーにアクセスできるかどうか – CFrei

+0

クライアントのアドレスとポートは何ですか?クライアントのアドレスも変更される可能性があります。問題は、サーバー経由でクライアントに到達する方法です。 – Beaumind

答えて

0

クライアントアドレスとポートアドバイスフロントがわからない場合は、クライアントを使用してサーバーに接続する必要があります。 1000台のデバイスは問題ありません。約65000個のオープンポート(チェックulimit)のソケット制限で実行します。クライアントとサーバーの間にオブジェクトストリームを構築し、クライアントが受け取るオブジェクトに基づいてスクリプトを実行します。また、クライアントに間隔を設定して、何かする必要がある場合は、n秒ごとに単純なhttpでチェックできるようにすることもできます。

は、ここでは例を参照してください:Node Stream Docs または、ここに:Node HTTP Docs

+0

クライアントの数が65000を超えるとどうなりますか? – Beaumind

+0

別のアプローチが必要です。たとえばhttp。しかし、クライアント数が65000を超える場合は、実際のアーキテクチャが必要になる可能性があります。いくつかのIoTアーキテクチャのアプローチを見て、例えば、アマゾンのawsや他のから... – CFrei

+0

私はlocaltunnelが問題を解決すると思います:) – Beaumind

関連する問題