2012-04-27 6 views
5

私は、インターネット経由でランプをオン/オフするために使用している小さなウェブアプリケーションに取り組んでいます。 ランプが点灯している場合はランプ画像に表示され、それ以外の場合はランプ画像が表示されます。 私はこのアプリケーションを実装するためにこの手順を考えています: 1ランプ・テンプレートのhtmlファイルを作成します。 2 5秒ごとに、ランプ・コントローラ回路がhttpデータをデータを取り込んで開くPHPサーバ・アプリケーションに送りますlamp.htmlファイルを読み込み、htmlファイルをランプコントローラから受信した新しいデータで書き換えます。 例:ランプが点灯している場合、サーバーアプリケーションはlamp.htmlに、ONランプの画像を含むイメージタグを書き出します。 3ブラウザからlamp.htmlファイルを要求します。例:http:mysite.com/lamp.html ファイルは5秒ごとに自動更新されます。ウェブアプリケーション:htmlとph

実装するのは良い手順ですか? httpリクエストを使用してリモートコントロールを行うために使用できるもう1つの方法はありますか?

+0

HTMLの代わりにブラウザからphpを直接リクエストできますか? –

答えて

0

ランプがオンまたはオフの場合、PHPスクリプトを使用して検索するすべてのページリクエストを表示し、結果に応じてイメージを表示します。

<img src="/<?php echo (lamp_is_on() ? 'on' : 'off'); ?>.png"> 
+0

ランプの状態をファイルやデータベースに保存しなければならず、ユーザー(ブラウザ上)がランプの状態を要求するたびに、データベースにアクセスして状態を取得して、ユーザー。ランプのデータをhtmlファイルに書き込むことをお勧めします。この場合、リンクを送信してhtmlページを取得するだけで、任意の数のユーザーがデータに直接アクセスできます。 – Hisham

0

私はランプの状態を表示するWebページを作成した場合...

  1. lamp.html
    は2つのdivを持っている必要があります。画像にランプが付いているものと、ランプが消灯しているもの。 getLampInfo.php
    は5秒ごとにgetLampInfo.phpを呼び出し、切り替えますlamp.htmlでAJAXスクリプトを書くあなたのランプコントローラに接続して、0または1

  2. のデータをエコーすべき

  3. divは応答に基づいています。

私はファイルの上書きなどは扱いません。それはすべて不要と思われます。あなたのアプローチはうまくいくでしょうし、絶対に間違っていることはありません。

希望すると便利です。

2

あなたが持っているprinicpalのアイデアは良いですが、改善の余地があります。しかし、最初のが一般的な設計に見てみましょう:サーバがファイルの中にランプが送信した最後の値を格納した場合、システムを簡素化するために

enter image description here

それは実際には十分です。すべての変更でフルHTMLファイルをレンダリングする必要はなく、ファイル内の1バイトを変更するだけです。

ブラウザは、5秒ごとにフルページを更新する必要はありません。代わりにStream Updates with Server-Sent Eventsのようなものを実装して、ランプが変わったときにWebサーバーがブラウザに実際に通知するようにします。ブラウザは、画像URLやその他のものをjavascriptで変更することができます。これにより、より見た目がよくなります。

+0

それは素晴らしいと思う私はあなたが共有し、返信を送信するリンクを読む...ありがとう!! – Hisham

+0

これは確かな答えです。良いアイデア、素敵なダイアグラム! –

+0

SSEはすべてのブラウザでサポートされていないようですが、PCや携帯電話のブラウザでサポートされているものが必要です。 2番目の問題は、問題を一歩前進させたいからです。多くのユーザーがリモートで監視するためにブラウザ上に自分のページを使用するので、私はこのデータがこのユーザーに送信されるべきであることをサーバーがどのように知っているか理解していません他にはない? 3番目の問題は、双方向通信をしたいので、ランプを制御してその状態を監視できるので、すべてのブラウザでサポートされていないウェブソケットのようなものが必要なので、助けてください。 – Hisham

関連する問題