实时Web应用程序能够实时地将服务器端内容推送到连接的客户端。对于ASP.NET开发人员,ASP.NET SignalR是一个向其应用程序添加实时Web功能的库。它利用了多种传输方式,根据客户端和服务器的最佳可用传输自动选择最佳可用传输。它利用了WebSocket,这是一种支持浏览器和服务器之间双向通信的HTML5 API。
SignalR还提供了一个简单的高级API,用于在ASP.NET应用程序中执行服务器到客户端RPC(在客户端的浏览器中从服务器端.NET代码调用JavaScript函数),以及为连接管理添加有用的钩子,例如连接/断开事件,分组连接和授权。
SignalR是对客户端和服务器之间进行实时工作所需的一些传输的抽象。一个SignalR连接开始为HTTP,然后提升到一个网页套接字(如果可用)连接。WebSocket是SignalR的理想传输,因为它可以最有效地使用服务器内存,具有最低的延迟,并具有最基本的功能(例如客户端和服务器之间的全双工通信),但它也有最严格的要求:WebSocket要求服务器使用Windows Server 2012或Windows 8以及.NET Framework 4.5。如果不满足这些要求,SignalR将尝试使用其他传输来建立连接(如Ajax长轮询)。
该SignalR API包含了客户端和服务器之间的通信两种型号:永久连接和枢纽。阿连接代表用于发送单收件人,分组,或广播消息的简单端点。一个中心是于连接API,可让您的客户端和服务器直接调用对方的方法建立了一个更高层的管道。
概观
目标
- 使用SignalR从服务器向客户端发送通知。
- 使用SQL Server扩展SignalR应用程序。
练习1:使用SignalR处理实时数据
虽然聊天通常用作示例,但您可以使用实时Web功能完成更多工作。每当用户刷新网页以查看新数据或页面实现Ajax长轮询以检索新数据时,您都可以使用SignalR。
SignalR支持服务器推送或广播功能; 它自动处理连接管理。在用于客户端 - 服务器通信的经典HTTP连接中,为每个请求重新建立连接,但SignalR提供客户端和服务器之间的持久连接。在SignalR中,服务器代码使用远程过程调用(RPC)调用浏览器中的客户端代码,而不是我们今天所知的请求 - 响应模型。
在本练习中,您将配置Geek Quiz应用程序以使用SignalR显示带有更新指标的Statistics仪表板,而无需刷新整个页面。
任务1 - 探索极客测验统计页面
在此任务中,您将浏览应用程序并验证统计信息页面的显示方式以及如何改进信息的更新方式。
打开Visual Studio Express 2013 for Web并打开位于Source \ Ex1-WorkingWithRealTimeData \ Begin文件夹中的GeekQuiz.sln解决方案。
按F5运行解决方案。将在登录页面应该出现在浏览器中。
运行解决方案
单击页面右上角的“ 注册”以在应用程序中创建新用户。
注册链接
在“ 注册”页面中,输入“ 用户名”和“ 密码”,然后单击“ 注册”。
注册用户
应用程序注册新帐户,用户通过身份验证并重定向回显示第一个测验问题的主页。
在新窗口中打开Statistics页面,并将Home页面和Statistics页面并排放置。
并排的窗户
在主页中,单击其中一个选项来回答问题。
回答问题
单击其中一个按钮后,应显示答案。
问题回答正确
请注意,“统计信息”页面中提供的信息已过时。刷新页面以查看更新的结果。