学习SignalR (1):认识SignalR

什么是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所使用的传输方式也有各自的要求,如下表:

 

传输方式IEChrome(Win或iOS)FFSafari(OSX或iOS)安卓
WebSockets10+当前-1当前-1当前-1不支持
Server-Sent Events不支持当前-1当前-1当前-1不支持
ForeverFrame8+不支持不支持不支持4.1
Long Polling8+当前-1当前-1当前-14.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
WebSocketsWin 8及.Net 4.5以上不支持
ForeverFrame不支持不支持
Server-Sent Events.Net 4以上5以上
Long Polling.Net 4以上5以上

 

Windows存储和Windows Phone应用程序

 

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

 

传输方式Windows存储/.NetWindows存储/JSWindows Phone/IEWindows不支持 Phone/.Net
WebSockets不支持Win8以上8以上不支持
ForeverFrame不支持Win8以上7.5以上不支持
Server-Sent EventsWin8以上不支持不支持8以上
Long PollingWin8以上Win8以上7.5以上8以上

 

推荐更新

 

推荐以下SignalR服务器更新:

 

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

以上是博友文章的节选

 

转载于:https://www.cnblogs.com/purplebolt/p/4117202.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值