0

HTTP サーバーのスリム化されたバージョンを実行している組み込みデバイスがあります。現在、静的な HTML ページを表示できます。静的 HTML ページを表示する方法の例を次に示します。

   char *text="HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n"
          "<html><body>Hello World!</body></html>";
   IPWrite(socket, (uint8*)text, (int)strlen(text));
   IPClose(socket);

私がやりたいのは、センサーからの読み取りなどの動的コンテンツを表示することです。私がこれまでに考えたのは、時々ページを更新することです

<meta http-equiv="refresh" content="600">

sprintf() を使用して、センサーの読み取り値を応答のテキスト変数にアタッチします。

ページを常に更新することなくこれを行う方法はありますか?

4

2 に答える 2

1

次の (私の経験から) アプローチを試すことができます。 - 静的コンテンツと動的コンテンツを分割し、動的コンテンツを最小限に抑えます。

  • 疑似 CGI インターフェイスを作成します。つまり、URL your_embedded_site/sensor.cgiを次の HTTP 応答の生成にバインドする必要があります。

sprintf(cgi_str, "HTTP/1.0 200 OK\r\nContent-Type: text\r\nContent-Length: %d\r\n\r\nvalue=%02d", 8, sensor_value);

または単に(それはすべてあなたの設計上の考慮事項です):

sprintf(cgi_str, "HTTP/1.0 200 OK\r\nContent-Type: text\r\nContent-Length: %d\r\n\r\n%02d", 2, sensor_value);

  • シンプルな JavaScript または小さな Java アプレットを使用して、定期的にyour_embedded_site/sensor.cgiをリクエストします。javascript は一般にブラウザに依存しており、オフにすることができます。Java アプレットには追加の静的コンテンツも必要です - 一部の *sensor_reader.class" ですが、データを表示し、単純な読み取りを拡張してより多くの機能を表示する際に非常に自由です。

これにより、ページ全体をリロードする代わりに、非常に効率的な方法で通信を整理できます。コードの一部 (ユーザー フロント エンド) はブラウザーで実行され、その他の部分 (バック エンド) は組み込みデバイスで実行されます。

于 2012-03-07T20:42:29.487 に答える
0

これを提供するために Java アプレットを使用しないでください。

AJAX と Javascript のクライアント側を使用すると、この種の作業が簡単になり、埋め込みアプレットの煩わしさがなくなります。

「意地悪」には次のものが含まれます。

  • Java のセキュリティの問題
  • Java ランタイムの不一致
  • ペイロード サイズの増加 (Javascript コードのスニペットと比較して、アプレットは大きい)
  • 速度の問題 (アプレットの起動が遅くなる可能性があります)
  • ウェブページは維持するのが難しい
  • 等々。

要約すると、2013 年です。Javascript と AJAX を使用するだけです。

于 2013-02-27T16:18:06.243 に答える