什么是SignalR?关于SignalR介绍

白星渊
2023-12-01

SignalR在ASP.NET MVC 4.5中出现了,ASP.NET MVC开始支持SignalR。那么什么是SignalR?有什么用途?

1.什么是SignalR?

SignalR是一个基于ASP.NET平台构建,利用JavaScript或者WebSockets,实现在客户端和服务端异步通信的框架。

 

由 David Fowler 和Damien Edwards 维护,开源代码的地址在GITHub上:SignalR project on GitHub

它和AJax类似,都是基于现有的技术。本身是一个复合体。一般情况下,SignalR会使用Javascript的长轮询( long polling),实现客户端和服务端通信。在WebSockets出现以后,SignalR也支持WebSockets通信。当然SignalR也使用了服务端的任务并行处理技术以提高服务器的扩展性。

 

2.SignalR用途

Most common examples where long polling is used are stock tickers or chat clients. However as we will see today SignalR throws open a whole new set of possibilities, enabling rich collaborative applications on ASP.NET.

任何一个技术的出现都是为了解决特定的问题。SignalR也不例外。我们知道网站开发中最长见到的一个功能就是在线聊天室。现在的网上的大部分在线聊天室都是基于2种技术,1.AJAX 2.Flash.

 

聊天室要解决最大的问题就是 消息的推送。当N个在线用户 同时加入一个聊天室时,1个用户发送消息,服务端就要把这个消息转发给特定的人。

之前的技术都是通过Javascript来不停地发送请求来轮训 服务端的新的消息。这种定期发送Ajax请求给服务器的方式,在用户很大的情况下给服务器带来很大的压力。

 

WebSockets这个技术的出现,很好地解决了这个问题,恰恰支持可以主动推送消息,SignalR 支持WebSockets。我们可以看到未来网络应用中会大量出现自己吃WebSockets的程序,而SignalR应该也会广泛在ASP.NET 网站中出现。得意应用。

 类似资料: