我正在为一个设备(比方说)'Prototype X'开发这个项目,它有制造商提供的.Net API。在从现实世界中的设备接收到一些特殊信号时,此API会触发事件(我应该订阅)。我想要/要求做的是,在触发此事件时,使用适当的信息更新asp页面(用户看到的)。通过更新,我的意思是在可能的情况下刷新用户页面...
我如何在asp.net中执行此操作?
答案 0 :(得分:3)
您无法从服务器端触发页面更新。您必须做的是在客户端(javascript)使用计时器定期刷新页面(或通过AJAX获取新数据)。
答案 1 :(得分:1)
您可以使用元标记或javascript强制页面刷新。或者AJAX。
答案 2 :(得分:1)
Web aps遵循请求 - 响应体系结构,因此您无法(很好地,轻松地)从客户端到服务器发送服务器启动的消息。
您可以使用轮询架构。最简单的方法是,您可以每隔X秒/分钟刷新页面以检查更改。这可能有点难看。
更加用户友好的方法可能是使用XMLHTTP对象每隔几秒轮询一次更改,并在检测到更改时刷新页面。您可以在服务器端创建一个HTTP Handler,它只具有上次更改的日期/时间,并且每隔几秒就进行一次javascript检查,并在发生更改时刷新页面。
答案 3 :(得分:0)
你还有另一个问题尚未解决。如果您有多个此设备的副本,那么您将如何将每个设备与正在使用它或监控它的用户或用户相关联?
我建议您在Windows服务中编写此系统的“设备访问”部分。让它保持与设备的连接,跟踪它们的状态,响应事件等。让它维护一组关于每个设备的数据,无论是在内存中还是在数据库中。
Web应用程序可以通过Windows服务中托管的WCF服务与服务进行通信。可能有一个WCF调用询问是否有任何更改,另一个调用来获取更改。第一个可以通过AJAX或元刷新相对频繁地调用。只有在看到变化时才会调用后者。