理解SignalR

ASP .NET SignalR 是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现即时通信(即:客户端(Web页面)和服务器端可以互相实时的通知消息及调用方法),即时通讯Web服务就是服务器将内容自动推送到已经连接的客户端,而不是服务器等待客户端发起一个新的数据请求。

SignalR有三种传输模式:LongLooping(长轮询)、WebSocket(HTML5的WEB套接字)、Forever Frame(隐藏框架的长请求连接),可以在WEB客户端显式指定一种或几种,也可以采取默认(推荐),若采取默认,SignalR会根据浏览器的环境自动选择合适的传输方式。 

SignalR能够被运用到各种类型的即时响应应用。你完全可以运用SignalR实现一个在线即时聊天应用。当然SignalR也运用在用户需要随时更新数据的网页运用,比如仪表盘和监控运用,其他协同应用程序(文档协同操作)、工作流更新或者是即时表格。 

SignalR同样也被运用在一些需要高频繁从服务器更新的应用,比如实时在线游戏。 

SignalR 提供了使用JavaScript API 方法创建服务器对客户端的远程过程调用协议(RPC)的,它能够让你从客户端浏览器(或者其他平台)从.NET服务端发起远程调用。SignalR 同样提供了管理远程连接和连接组的API方法。

SignalR 不仅能够自动管理连接,而且能够同时向所有的客户端广播消息,就像聊天室一样。你也能够发送消息到指定的客户端。SignalR提供的连接是持久的,它不像传统的HTTP连接需要为每次收发消息建立单独的连接。 

SignalR 同时在服务端提供了远程过程调用协议(RPC),让你能够“主动”推送消息到浏览器中的客户端,而不像普通的Web服务一样的应答方式。 

SignalR 应用能够运用到成千的客户端上,通过使用服务总线、SQL Server或者Redis。 

SignalR 是开源的,能够通过GitHub很容易得到。

SignalR 和 WebSocket

你可以使用SignalR 使用最新的WebSocket 传输,同时也能够让你回退到原有的传输方式。你可以直接使用SignalR 使用 WebSocket,因为SignalR 已经替你封装好许多你需要实现的方法。最重要的是你使用SignalR不用担心为老的客户端实现WebSocket而采用两套不同的逻辑编码方式。使用SignalR 实现WebSocket你不用担心 WebSocket的更新而去修改代码,SignalR会在传输方式上使用WebSocket最新的传输方式,同时提供了一连串的接口能够让你来支持不同版本的客户端。 

当你想创建一个纯粹的WebSocket解决方案的时候,SignalR 提供了所有的方法,比如回退到其他传输方式或者更新到WebSocket 的实现方法。

猜你喜欢

转载自www.cnblogs.com/innershare/p/10727873.html