2

デバイスからのリアルタイム データを処理し、入力に基づいて決定を下すことができる最適なサーバー側コードについてアドバイスをお願いします。簡単な例: Web 対応の温度計があり、軽い TCP/IP クライアント スタックを実行しているとします。温度が 30 度に達したら、デバイスがサーバーに接続し、サーバーからメールが送信されるようにします。また、サーバーがヒーターをオンにするコマンドを送信できるようにしたいと考えています。

ここでの問題は、サーバーから TCP メッセージを開始し、さまざまな任意のファイアウォールとルーターを通過して、クライアント デバイスに到達する機能です。更新のためにサーバーをポーリングするような「回避策」や、サーバーに電話をかけ、送信するものがある場合に備えて接続を開いたままにする「ロングポーリング」があることを私は知っています。ここでの問題は帯域幅です。メッセージはまれですが、重要であるため、ヘッダーとハンドシェイクがトラフィックの 98% を占めています。

私は WebSocket について調べてきましたが、特に HTML5 と組み合わせると、まさに私が必要としているもののように思えます。

クラウドサーバーで実行でき、標準化された方法を使用してデータをデバイスにプッシュできる、すぐに使えるサーバーソフトウェアパッケージを知っている人はいますか? ここで車輪の再発明をしたくはありません。私がこれを最初に試したなんて信じられません。独自の独自のソリューションでそれを行っている人を何人か見かけますが、私はワンストップ パッケージを購入することにもっと興味があります。

4

1 に答える 1

1

WebSocket は、オーバーヘッドが低く、待ち時間が短く、Web および一般的なネットワーク インフラストラクチャとの互換性があるため、組み込みデバイスをバックエンド インフラストラクチャに接続するための有効な選択肢です。Jetty、node.js ベースなど、幅広いサーバー実装が利用可能です。

例として、Arduino デバイスを WebSocket サーバーに接続し、リアルタイム データをグラフに表示するブラウザ クライアントを次に示します。

そこで使用されているテクノロジーである AutobahnPython は、Python/Twisted ベースの WebSocket 実装であり、

  • サーバーとクライアントの実装を提供します
  • RasperryPi などの組み込みデバイスで直接実行
  • シリアルまたはCANバス経由で接続されたセンサーに簡単にアクセスできます(Twistedはそれを非常にうまくサポートしているため)
  • WebSocket の上に RPC および PubSub メッセージング パターンを提供します

この技術はオープンソースであるため、独自のソリューションを開発できます。ヘルプ/サービスを探している場合は、私に連絡してください;)また、機能、管理UIなどを追加し、データをWebSocketにプッシュするREST APIを含む仮想アプライアンス(VMware、EC2)であるTavendo WebMQも提供しています。クライアント。

免責事項: 私は Autobahn の著者であり、Tavendo で働いています。

于 2012-10-26T07:39:38.657 に答える