SignalR小记

一、SignalR是什么?

SignalR是一种开放源代码库,可简化将实时Web功能添加到应用程序的功能。实时Web功能使服务器端代码可以立即将内容推送到客户端。

二、SignalR的通信方式

1、WebSockets

WebSockets是一种在单个TCP连接上进行全双工通信的协议,使得服务器和浏览器的通信更加简单,服务端可以主动发消息。

2、Server-Sent Events

Server-Sent Events是一种用于实现服务器向客户端实时推送数据的Web技术。它基于Http协议,允许服务器将数据以事件流的形式发送给客户端。客户端通过建立持久的Http连接,并监听事件流,可以实现实时接收服务器推送的数据。

3、Long Polling

一般是由客户端向服务端发出一个设置较长网络超时时间的Http请求,并在Http连接超时前,不主动断开连接;待客户端超时或有数据返回后,再次建立一个同样的Http请求,重复以上请求。

这三种方式比较:

1、WebSockets

它提供双向、全双工的通信信道,客户端和服务器可以实时、连续地传输数据。它基于TCP协议,建立持久的连接,但由于建立了持久的连接,可能会消耗更多的服务器资源,但它可以实现低延迟的数据传输。它适用于需要实时、双向通信的应用程序,例如实时聊天、通知、游戏等。

2、Server-Sent Events

单向通信,服务器可以主动向客户端发送数据,但是客户端不能向服务器发送数据。它基于Http协议,使用Http连接传输数据,每个请求/响应周期可能只发送一个事件。它适用于服务器向客户端推送数据,而客户端不需要实时响应的场景,如新闻更新、时间表变更等等。

3、Long Polling

客户端发送请求到服务器,服务器保持连接开放,直到有数据可以发送。数据发送后,连接关闭,客户端再次发送请求,它适用于服务器向客户端推送数据,而客户端不需要实时响应的场景,如消息队列、任务调度等。

总结:

WebSockets适用于需要实时、双向通信的场景;Sever-Sent Events和Long Polling适用于服务器向客户端推送数据,而客户端不需要实时响应的场景。

三、哪些场景适用于SignalR?

1、需要实时通知的应用、游戏、实时聊天、电子邮件等等;

2、仪表板和监视应用:公司仪表板、即时销售更新等等;

3、协作应用:如白板软件和团队会议软件等等;

4、实时聊天室;

5、实时地图和定位服务;

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值