2009-06-15 10 views
0

私はこのプロジェクトを「プロトタイプX」とし、メーカーが提供する.Net APIを持っています。このAPIは、現実世界のデバイスから特別な信号を受信するとイベント(私が購読すべきです)を起動します。私が欲しい/尋ねることは、このイベントが発生したときに適切な情報でASPページ(ユーザが見る)を更新することです。更新によって、私はできるだけユーザーのページをリフレッシュすることを意味します...サーバでトリガされたイベントからページを更新する

どうすればasp.netでこれを行うことができますか?

答えて

3

サーバー側からページ更新をトリガーすることはできません。あなたがしなければならないことは、定期的な間隔でページをリフレッシュする(またはAJAXを介して新しいデータを取得する)ためにクライアント側(JavaScript)のタイマーを使用することです。

1

メタタグまたはjavascriptを使用してページを更新するよう強制できます。またはAJAX。

1

Web-apsは要求応答アーキテクチャに従い、クライアントからサーバーへのサーバー起動メッセージを実際に(よく、簡単に)受け取ることはできません。

ポーリングアーキテクチャを使用できます。非常に簡単なことに、X秒/分ごとにページを更新するだけで、変更を確認することができます。これは少し醜いかもしれません。

ユーザーフレンドリーなアプローチは、XMLHTTPオブジェクトを使用して数秒ごとに変更をポーリングし、変更が検出されたときにページを更新することです。最後に変更した日時を持つHTTPハンドラーをサーバー側に作成し、数秒ごとにjavascriptで確認し、変更が発生したときにページを更新することができます。

0

ここでは別の問題がありますが、これは対処されていません。このデバイスのコピーが複数ある場合は、各デバイスを使用しているか、それを監視しているユーザーにどのように関連付けるのですか?

このシステムの「デバイスアクセス」の部分をWindowsサービスに書き込むことをお勧めします。デバイスへの接続を維持し、状態の追跡、イベントへの応答などを行います。メモリ内またはデータベース内の各デバイスに関する一連のデータを維持できるようにします。

Webアプリケーションは、WindowsサービスでホストされているWCFサービスを介してサービスと通信できます。何か変更があったかどうかを尋ねるWCF呼び出しと、変更を取得するための別の呼び出しがあります。最初はAJAXやメタリフレッシュによって比較的頻繁に呼び出すことができます。後者は、変化が見られたときにのみ呼び出される。

関連する問題