刚参加工作的表弟问我长连接有什么使用场景?与轮询有什么区别?


刚参加工作两三年的表弟一直在公司写着CRUD的接口,突然有一天,领导让他做一个消息推送的功能,表弟看了一下第三方开放平台的文档。直呼卧槽,长连接是什么意思?当天晚上就来找我了。

短连接

为了让表弟更好的理解,我先从表弟写的最多的接口讲起。实际上Java程序员给前端提供的接口都是短连接,所谓短连接就是客户端向服务端发起一个请求,服务端返回客户端请求对应的数据后,客户端与服务端就断开了连接。这里举一个生活中的例子发短信查流量余额
image.png
表弟发送了一条短信给中国移动查流量,中国移动返回了剩余流量。在返回流量之后,表弟跟中国移动就没有联系了,如果表弟向再查一次流量就需要在发一次短信,相当于建立了两个连接。

长连接

了解了短连接之后,我给表弟讲一下长连接,长连接是指客户端与服务端建立一次连接后不断开,彼此通信的过程。据说表弟每个月刷b站惹人喵,月月流量超出几百个G,于是表弟每看一个视频就查一下自己还剩多少流量,一个月查了几百次是真的累。这个问题就可以使用长连接来解决:表弟看视频之前都与中国移动的客服小姐姐打一个电话,表弟每用10G流量,客服小姐姐就电话里告诉表弟,流量还有多少。这样就可以提高的效率了(看更多的视频)
image.png
原本表弟要发好几次短信才知道流量使用情况,现在一次就可以了,并且非常的及时,不会出现流量超出的情况。

短轮询

说完短连接和长连接之后,给表弟补充点课外知识,进行对比学习。首先说一下大家比较熟悉的短轮询,短轮询常见的场景就是用户扫码支付之后,一直轮询付款结果,如果付款成功则跳到付款成功的页面。轮询一般是定时请求一个接口,比如1s调一下查询付款是否成功的结果。以下截图就是短轮询的应用场景。
image.png

长轮询

长轮询写Java的很多都用不到,给出几种使用场景,了解一下

  1. 即时消息通知: 长轮询用于实现实时聊天、消息通知、在线客服等功能。当一个用户发送消息后,服务器不会立即响应,而是保持请求打开直到有新消息推送给用户,这样用户可以实时接收消息。
  2. 监控和通知: 在监控系统中,长轮询可用于实时监控系统状态、告警通知和日志推送。监控数据的变化会通过长轮询推送给前端界面。
  3. 在线游戏: 长轮询用于在线游戏中,以实现多玩家协同游戏。游戏中的动态变化(例如角色位置、物品掉落等)会通过长轮询实时推送给其他玩家。
  4. 社交媒体更新: 长轮询可用于社交媒体应用,以通知用户有关新动态、评论、喜欢和提及等。
  5. 股票和金融市场数据: 长轮询适用于金融行业,以实时推送股票价格、市场动态和新闻。

总的来说,长轮询是一种通过HTTP协议实现的轻量级通信方式,它避免了传统轮询中的无谓的请求和降低了服务器负担。但需要注意,长轮询并不是唯一的实时通信方法,还有WebSocket等其他技术可以用于不同的场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI极客Jayden 

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值