Обновление страницы из события, вызванного сервером - PullRequest
0 голосов
/ 15 июня 2009

Я разрабатываю этот проект для устройства (скажем, «Prototype X»), и он предоставил .Net API от производителя. Этот API запускает события (на которые я должен подписаться) после получения какого-то специального сигнала от устройства в реальном мире. То, что я хочу / попросил сделать, это обновить страницу asp (которую видит пользователь) правильной информацией, когда происходит это событие. Под обновлением я имею в виду также обновление страницы пользователя, если это вообще возможно ...

Как мне это сделать в asp.net?

Ответы [ 4 ]

3 голосов
/ 15 июня 2009

Вы не можете запустить обновление страницы со стороны сервера. Что вы должны сделать, это использовать таймер на стороне клиента (javascript), чтобы обновлять страницу (или получать новые данные через AJAX) через регулярные интервалы.

1 голос
/ 15 июня 2009

Веб-приложения следуют архитектуре запрос-ответ, поэтому вы не можете (ну, в общем-то, легко) отправлять сообщения, инициируемые сервером, от клиента к серверу.

Вы можете использовать архитектуру опроса. В самом простом случае вы можете просто обновить страницу каждые X секунд / минут, чтобы проверить изменения. Это может быть немного некрасиво.

Более удобным для пользователя подходом может быть использование объекта XMLHTTP для опроса изменений каждые несколько секунд и обновления страницы при обнаружении изменения. Вы можете создать обработчик HTTP на стороне сервера, в котором просто есть дата / время последнего изменения и сделать так, чтобы javascript проверял это каждые несколько секунд, а когда происходит изменение, обновите страницу.

1 голос
/ 15 июня 2009

Вы можете принудительно обновить страницу, используя метатег или javascript. Или AJAX.

0 голосов
/ 24 июня 2009

У вас есть еще одна проблема, которая не была решена. Если у вас есть более одной копии этого устройства, то как вы будете ассоциировать каждое устройство с пользователем или пользователями, которые его используют или отслеживают?

Я предлагаю вам написать часть «доступ к устройству» этой системы в службе Windows. Пусть он поддерживает соединение с устройствами, отслеживает их состояние, реагирует на события и т. Д. Пусть он поддерживает набор данных о каждом устройстве, либо в памяти, либо в базе данных.

Веб-приложение может взаимодействовать со службой через службу WCF, размещенную в службе Windows. Может быть один вызов WCF, который спрашивает, изменилось ли что-нибудь, и другой вызов, чтобы получить изменения. Первый может вызываться относительно часто, через AJAX или мета-обновление. Последний будет вызван только тогда, когда изменение было замечено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...