我有一个ASP.NET MVC应用程序呈现一些数据,我希望它
当网络服务给我一个信号时。这个WS应该处理一些外部数据和请求,当调用某些特定的动作时,我希望它能够为我的Web应用程序提供某种信号。
我正在考虑将Html.Action
用于异步控制器,但后来我不知道如何从WS向控制器(或它们的所有实例)提供信号。
希望这是可以理解的。你知道需要做什么吗?
提前致谢。
答案 0 :(得分:1)
所以基本上你的问题归结为服务器状态发生了变化(通过WS),我们希望在正在查看你的web应用程序的客户端发生一些事情。
坦率地说,这不是直截了当的。互联网适用于客户端 - >服务器架构。用户向服务器发送请求,服务器响应。你要做的就是逆转它。您想要从服务器向用户发送请求。 HTTP协议不能像那样工作。
现在,使用以下两种策略做类似的事情:
Websockets :尝试在谷歌上搜索它们。您在客户端和服务器之间创建一个套接字,一旦服务器由WS更新,它就会通过套接字向客户端发送请求。您可以要求它导航到其他视图或打开一个新窗口。它的缺点是它不受大多数浏览器的支持。可能需要一年左右的时间。现在不太推荐。
轮询:您可以在一定的时间间隔内从浏览器向服务器发出Ajax请求(您知道每5秒钟一次)并查看服务器状态是否已更改或现在。如果是,那就去做吧。这是最常用的技术。 Twitter.com使用它。还有另一个版本称为Comet或Long Polling,但我不会将此与您混淆。
这里要注意的重要一点是,无论你想做什么(打开标签,更改视图等),你都必须通过客户端的Javascript来完成。
希望有所帮助