码迷,mamicode.com
首页 > 其他好文 > 详细

学习SignalR (1):认识SignalR

时间:2014-11-23 20:12:22      阅读:332      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   使用   sp   

什么是SignalR?

     ASP .NET SignalR是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信。什么是实时通信的Web呢?就是让客户端(Web页面)和服务器端可以互相通知消息及调用方法,当然这是实时操作的。

      WebSockets是HTML5提供的新的API,可以在Web网页与服务器端间建立Socket连接,当WebSockets可用时(即浏览器支持Html5)SignalR使用WebSockets,当不支持时SignalR将使用其它技术来保证达到相同效果。

      SignalR当然也提供了非常简单易用的高阶API,使服务器端可以单个或批量调用客户端上的JavaScript函数,并且非常 方便地进行连接管理,例如客户端连接到服务器端,或断开连接,客户端分组,以及客户端授权,使用SignalR都非常 容易实现。

      SignalR 将与客户端进行实时通信带给了ASP .NET 。当然这样既好用,而且也有足够的扩展性。以前用户需要刷新页面或使用Ajax轮询才能实现的实时显示数据,现在只要使用SignalR,就可以简单实现了。最重要的是您无需重新建立项目,使用现有ASP .NET项目即可无缝使用SignalR。
 
这是百度词条上的解释
 
由此可知 SignalR 可以用来开发聊天室,
还可以用来开发
用户需要不停的刷新网页来看最新的数据;
在页面上通过实现长轮询来检索新数据(并显示)的程序,
比如:仪表板及监视型应用程序;协作型应用程序(如多人同时对文档进行编辑);作业进度更新及实时呈现表单等。
 
SignalR的应用可以使用服务总线,SQL SERVER或者Redis来扩展到数以千计的客户端上。
SignalR使用WebSocket传输方式——在可能的情况下。并且会自动切换到旧的传输方式(如HTTP长连接)。
WebSocket是SignalR最理想的传输方式,因为它可以最有效地利用服务器的内存,拥有最低的延迟及全面的底层功能(比如客户端和服务器间的全双工通讯),但它也有最严格的要求:服务器必须使用Windows Server 2012或Windows 8操作系统,同时.Net框架版本4.5及以上。如果不符合这些要求,SignalR将尝试采用其他传输方式以进行连接。
 
你可以通过启用Hub日志记录,并在浏览器的控制台中查看应用程序使用何种传输方式。
要启用日志记录,添加以下命令到客户端应用程序:
$.connection.hub.logging = true;
 
SignalR API中包含两中客户端-服务器进行通信的模型:永久连接和集线器(Hubs)。 
 
 永久连接表示一个发送单个、分组或广播消息的简单终结点。持久性连接API(在.NET 代码中由 PersistentConnection 类表示)可以让开发人员直接访问SignalR的底层通信协议。使用过基于连接API如WCF的开发人员将更熟悉连接通信模型。

集线器是基于API但级别更高一级的通信管道,它允许客户端和服务器上互相直接调用方法。SignalR能够奇妙的处理跨机器的调度,让客户端轻松的调用服务器上的方法,如同调用本地方法一样,反之亦然。使用过基于远程调用的AIP如.Net Remoting的开发人员将更熟悉集线器模型。使用集线器,你还可以将强类型的参数传递给方法并且对模型绑定。

 

大多数应用程序可以使用集线器的API,但在下列的情况下,你应当使用连接API:

  • 需要指定发送消息的格式。
  • 开发人员更喜欢使用消息传递和调度模型,而不是一个远程调用模型
  • 现有的应用程序中正在使用消息传递模型,计划移植到SignalR上。
 

支持的服务器操作系统

SignalR的服务器组件被以下服务器和客户端操作系统支持。

  • Windows Server 2012
  • Windows Server 2008 R2
  • Windows 8
  • Windows 7
  • Windows Azure

请注意,如果你想让SignalR使用的WebCosket,则需要Windows Server 2012或Windows 8 操作系统(WebSocket也可以被Windows Azure网站支持,前提是网站的.Net框架版本为4.5,并且在配置页中已经启用了WebSockets)。

支持的服务器.Net框架版本

SignalR 2.0仅支持.Net 框架4.5

支持的服务器IIS版本

SignalR被以下版本的IIS支持。

  • IIS 8 或 IIS 8 Express。
  • IIS 7 和 IIS 7.5,需要extensionless URLs支持。
  • IIS必须在集成模式下运行,不支持经典模式。当IIS运行在经典模式时,使用服务器发送事件可能带来30秒的消息延迟。
  • 托管应用程序必须运行在信任模式下。

请注意,如果使用客户端操作系统,比如用于开发(Windows 7 或 8),则不应使用IIS或Cassini的完整版本。因为客户端有10个并发连接的限制,要达到这一限制非常容易,因为连接是非常短暂的而且经常重新建立。并且在连接使用过后并不会立即销毁。你应当使用IIS Express。

还需要注意如果你想要SignalR使用WebSocket,则必须使用IIS 8 或IIS 8 Express,服务器必须使用Windows 8 , Windows Server 2012并且IIS必须启用了WebSocket,关于在IIS中启用WebSocket,请参阅IIS 8.0 WebSocket Protocol Support

 

客户端系统需求

 

SignalR可以用于各种客户端平台。本节介绍SignalR在Web浏览器、Windows桌面应用程序,Silverlight应用程序和移动设备中的系统要求。

 

Web浏览器

 

SignalR可以在各种Web浏览器中使用,但通常情况下,只有支持最新的两个版本。

 

应用程序在浏览器中使用SignalR必须使用jQuery版本1.6.4,或主要版本(如1.7.2,1.8.2,1.9.1等)。

 

SignalR在以下浏览器中可用:

 

  • IE8 , 9 , 10 , 11 桌面及移动,Win8的Modern,版本都支持。
  • 火狐:当前版本-1,Win及Mac版本。
  • Chrome:当前版本-1,Win及Mac版本。
  • Safari:当前版本-1,Mac及iOS版本。
  • Opera:当前版本-1,仅限Win版本。
  • 安卓浏览器。

 

除了浏览器要求,SignalR所使用的传输方式也有各自的要求,如下表:

 

传输方式 IE Chrome(Win或iOS) FF Safari(OSX或iOS) 安卓
WebSockets 10+ 当前-1 当前-1 当前-1 不支持
Server-Sent Events 不支持 当前-1 当前-1 当前-1 不支持
ForeverFrame 8+ 不支持 不支持 不支持 4.1
Long Polling 8+ 当前-1 当前-1 当前-1 4.1

 

不支持的浏览器

 

虽然在旧版本的浏览器中运行SignalR中可能不会有重大问题,但我们不会主动去测试SignalR在旧浏览器中的运行情况,也不会解决同旧浏览器的兼容问题。

 

请参考配置及测试列表: our testing matrix

 

Windows桌面和Sliverlight应用程序

 

除了在网络浏览器上运行,SignalR也可以被配置使用在独立的Windows客户端或Silverlight应用程序中。要使用SignalR,Windows桌面和Silverlight应满足以下系统需求:

 

  • 在Win XP SP3及以上,应用程序使用.Net 框架版本4。
  • 在Windows Vista及以上,应用程序使用.Net 框架版本4.5。

 

除了操作系统及框架版本需求,SignalR对于传输方式也有各自的要求,如下表:

 

传输方式 .Net应用程序 Silverlight
WebSockets Win 8及.Net 4.5以上 不支持
ForeverFrame 不支持 不支持
Server-Sent Events .Net 4以上 5以上
Long Polling .Net 4以上 5以上

 

Windows存储和Windows Phone应用程序

 

SignalR可以用在Windows存储和Windows Phone应用程序中,对于传输方式也有各自的要求,如下表:

 

传输方式 Windows存储/.Net Windows存储/JS Windows Phone/IE Windows不支持 Phone/.Net
WebSockets 不支持 Win8以上 8以上 不支持
ForeverFrame 不支持 Win8以上 7.5以上 不支持
Server-Sent Events Win8以上 不支持 不支持 8以上
Long Polling Win8以上 Win8以上 7.5以上 8以上

 

推荐更新

 

推荐以下SignalR服务器更新:

 

  • .Net框架4.5的更新程序,在这里
  • 微软会定期发布ASP.NET的快速更新补丁,应当及时安装它们。

以上是博友文章的节选

 

学习SignalR (1):认识SignalR

标签:style   blog   http   io   ar   color   os   使用   sp   

原文地址:http://www.cnblogs.com/purplebolt/p/4117202.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!