在上一讲中我们讲解了SignalR连接模式和Hub原理分析,下面我们继续分析SignalR的平台支持。
SignalR 支持在不同的服务器和客户的配置。另外每种传输方式由自己相应的配置。如果系统不满足某张传输方法,SignalR 也能将措辞转移到其他传输方式上。更多关于SignalR 传输方式的要求请看SignalR传输方式和选择分析。
SignalR 服务器组件可以进行多种配置。下面的章节描述了SignalR 所支持的服务器版本、.NET Framework 版本、IIS和其他组件。
SignalR组件能够运行在下面的服务器和客户端操作系统。需要注意的是使用WebSockets传输方式,SignalR需要Windows Server 2012 或者 Windows 8(WebSocket 能够运用在Windows Azure Web 站点, .NET framework 需在4.5及其以上)。
SignalR 2 只能支持 .NET Framework 4.5。查看下面的“SignalR 建议更新版本”更新,使其更加可靠、兼容性更好、更加稳定、性能更优。
当SignalR运行在IIS中,那么下面的版本是支持的。需要注意的是如果使用客户端操作系统,比如开发(Windows 8或Windows 7),不应使用完整版本的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能够使用的浏览器、桌面应用、Silverlight 应用和移动设备。
SignalR 浏览器支持
SignalR 能够运行在多种浏览器下,但是典型支持的是下面最新的两种情况。
浏览器中运行的SignalR 应用必须使用jQuery 1.64 或者其他更高版本(比如jQuery 1.7.2, 1.8.2, or 1.9.1)。
SignalR 能够运用在下面的浏览器下:
另外对于特定的浏览器,SignalR 所使用的传输方式有各自的要求。下面的各个浏览器版本对SignalR传输的支持对照表:
Transport | Internet Explorer | Chrome (Windows or iOS) | Firefox | Safari (OSX or iOS) | Android |
---|---|---|---|---|---|
WebSockets | 10+ | current - 1 | current - 1 | current - 1 | N/A |
Server-Sent Events | N/A | current - 1 | current - 1 | current - 1 | N/A |
ForeverFrame | 8+ | N/A | N/A | N/A | 4.1 |
Long Polling | 8+ | current - 1 | current - 1 | current - 1 | 4.1 |
对于老浏览器的SignalR 没有太大的问题,但是微软官方也说了SignalR在一些更低版本的浏览器测试程度不够,很有可能会出现没有修复的bug。所有建议太老的浏览器版本还是不要使用。
除了浏览器,SignalR也能运行在Windows 和 Silverlight 应用上,但是需要下面的要求:
另外操作系统和.NET framework , 根据SignalR 传输方式不同,本部需要的配置如下:
Windows桌面和Silverlight 应用传输方式需求
Transport | .NET application | Silverlight |
---|---|---|
Web Sockets | Windows 8+ and .NET 4.5+ | N/A |
Forever Frame | N/A | N/A |
Server-Sent Events | .NET 4+ | 5+ |
Long Polling | .NET 4+ | 5+ |
SignalR 能够运用在Window 商店 和 Windows Phone 8 应用上。下面的其所支持的传输方式比照表:
SignalR Window 商店和 WinPhone 应用传输方式支持对照表
Transport | Windows Store/ .NET | Windows Store/ JavaScript | Windows Phone/ IE | Windows Phone/ .NET |
---|---|---|---|---|
WebSockets | N/A | Win8+ | 8+ | N/A |
Forever Frame | N/A | Win8+ | 7.5+ | N/A |
Server-Sent Events | Win8+ | N/A | N/A | 8+ |
Long Polling | Win8+ | Win8+ | 7.5+ | 8+ |
下面的列表是针对SignalR 服务器的建议更新版本:
微软在定期为ASP.NET 发布 QFEs。
以上就是SignalR 服务器配置、组件要求和浏览器兼容性的详细讲解。在下一节我们将通过一个实际的例子暂时SignalR的实现过程。