2009-06-15 9 views
0

Je développe ce projet pour un périphérique (disons) "Prototype X" et il a l'API .Net fournie par le fabricant. Cette API déclenche des événements (auxquels je devrais m'abonner) en recevant un signal spécial de l'appareil dans le monde réel. Ce que je veux/demande est de mettre à jour la page ASP (que l'utilisateur voit) avec les informations appropriées lorsque cet événement est déclenché. Par mise à jour, je veux aussi rafraîchir la page de l'utilisateur, si possible ...Mise à jour d'une page à partir d'un événement déclenché par le serveur

Comment faire ceci dans asp.net?

Répondre

3

Vous ne pouvez pas déclencher une mise à jour de page du côté serveur. Ce que vous devez faire est d'utiliser une minuterie du côté client (javascript) pour actualiser la page (ou obtenir les nouvelles données via AJAX) à intervalles réguliers.

1

Vous pouvez forcer l'actualisation de la page à l'aide d'une balise META ou d'un javascript. Ou AJAX.

1

Les aps Web suivent une architecture de requête-réponse de sorte que vous ne pouvez pas (vraiment, facilement) avoir des messages initiés par le serveur du client au serveur.

Vous pouvez utiliser une architecture d'interrogation. À sa plus simple expression, vous pouvez simplement faire rafraîchir la page toutes les X secondes/minutes pour vérifier les changements. Cela peut être un peu moche.

Une approche plus conviviale pourrait consister à utiliser l'objet XMLHTTP pour interroger les modifications toutes les quelques secondes et actualiser la page lorsqu'une modification est détectée. Vous pouvez créer un gestionnaire HTTP sur le serveur qui a simplement la date/heure de la dernière modification et avoir un javascript vérifier toutes les quelques secondes et quand une modification se produit, actualiser la page.

0

Vous avez un autre problème ici qui n'a pas été résolu. Si vous avez plus d'une copie de cet appareil, comment allez-vous associer chaque appareil à l'utilisateur ou aux utilisateurs qui l'utilisent ou le surveillent?

Je vous suggère d'écrire la partie "accès au périphérique" de ce système dans un service Windows. Laissez-le maintenir la connexion aux périphériques, garder une trace de leur état, répondre aux événements, etc. Laissez-le maintenir un ensemble de données sur chaque périphérique, soit en mémoire ou dans une base de données.

L'application Web peut communiquer avec le service via un service WCF hébergé dans le service Windows. Il pourrait y avoir un appel WCF qui demande si quelque chose a changé, et un autre appel pour obtenir les changements. Le premier pourrait être appelé relativement fréquemment, via AJAX ou meta refresh. Ce dernier ne serait appelé que lorsqu'un changement a été vu.

Questions connexes