来源: ASP.NET SignalR 系列(一)之SignalR介绍 – 黄明辉 – 博客园
一、SignalR介绍
ASP.NET SignalR 是一个面向 ASP.NET 开发人员的库,可简化将实时 web 功能添加到应用程序的过程。 实时 web 功能是让服务器代码将内容推送到连接的客户端立即可用,而不是让服务器等待客户端请求新数据的能力。
废话不多说
二、SignalR 和 WebSocket的区别
简单的说呢,websocket对客户端和服务端都有要求,而SignalR对兼容性就比较好,它集成了WebScoket和http两种方式,当条件满足时,自动使用WebScoket,否则使用http。可以简单的理解为,WebScoket是SignalR的子集。
三、SignalR的两种模式
永久连接
长连接(长轮询)
1、如果浏览器是 Internet Explorer 8 或更早版本,则使用长轮询。
2、如果配置 JSONP (即jsonp
参数设置为true
启动连接时),使用长轮询。
3、如果操作正在进行的跨域连接,(即,如果 SignalR 终结点不在托管的页面所在的域中),然后 WebSocket 将在满足以下条件:
1、客户端支持 CORS (跨域资源共享)。
2、客户端支持 WebSocket
3、服务器支持 WebSocket
4、如果不满足任何这些条件,则将使用长轮询。
4、如果未配置 JSONP 并且连接不跨域,如果客户端和服务器支持它,则将使用 WebSocket。
5、如果客户端或服务器不支持 WebSocket,如果可用,则使用服务器发送事件。
6、如果服务器发送事件不可用,请尝试使用永久帧。
7、如果永久连接失败,则使用长轮询。
文章介绍参考:https://docs.microsoft.com/zh-cn/aspnet/signalr/overview/getting-started/introduction-to-signalr#signalr-and-websocket
不在多介绍了,下章开始进入撸代码。