Spring Boot实现长轮询和短轮询(Short Polling & Long Polling)长连接和短连接

本文介绍了长轮询和短轮询的概念,以及它们在网络实时性中的作用。JavaScript 和 XMLHttpRequest 的出现推动了网络的动态化。短轮询频繁请求服务器,消耗资源,而长轮询通过保持连接降低请求次数。文章展示了使用 Spring Boot 框架进行长轮询的实现,包括控制器代码和测试案例,强调了长轮询在某些场景下的适用性,但推荐使用 WebSockets 构建实时应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

个人感觉,长连接短连接是错误的描述,应该是长轮询短轮询

长轮询是一个在过去被广泛使用的概念,正是这种技术让网络感觉像是实时的,我认为了解一点历史会帮助你更好地理解。

目录

互联网简史

Javascript 之后的时代

长轮询的诞生

短轮询技术

长轮询

长轮询技术的实现

长轮询控制器

保持轮询方法

长轮询控制器测试

结论


互联网简史

如果您足够大,那么您就会知道早期的网络非常无聊。我所说的无聊是指静态的,没有活动部件。

它只是在 HTTP 请求/响应模型下以单向方式同步工作。

单向请求/响应范例
请求响应模型

在这个模型中,客户端请求服务器发送一个特定的网页。然后服务器将其发送给客户端。故事到此结束。

如果客户端需要另一个页面,它将发送另一个对该页面数据的请求,服务器将请求的数据作为 HTTP 响应发送。

没有什么花哨的。很简单,很单调。

因此,在 Web 的早期,HTTP 作为一种简单的请求-响应协议是有意义的,因为它旨在根据客户端的需求从服务器提供文档。然后该文档将包含到其他文档的链接(超链接)。

没有什么比 javascript 更好的了。全是 HTML。

Javascript 之后的时代

Javascript 诞生于 1995 年,当时Netscape Communications聘请Brendan Eich在 Netscape Navigator 中实现脚本功能,经过十天的时间,JavaScript 语言诞生了。

用 10 天构建的语言你能做多少——好吧,没什么。它仅用于补充 HTML……例如提供表单验证和动态 HTML 的轻量级插入。

但这为 Web 开发世界提供了一种全新的方式。它正在从静态走向动态时代。网络不再是静态的,它发现了动态改变自身的能力。

在接下来的 5 年里,当浏览器大战升温时,微软诞生了XMLHttpRequest对象。但是,这仅受 Microsoft Internet Explorer 支持。

2006年万维网联盟于 2006 年 4 月 5 日发布了 XMLHttpRequest 对象的工作规范。这赋予了 Web 开发人员权力——他们现在可以发送异步请求从服务器获取数据并更改部分DOM 与新数据。不再需要加载整个页面。

这使得网络更加令人兴奋,不再单调。

这是历史上实时聊天应用程序成为现实的时间。它是使用长轮询机制实现的。

长轮询的诞生

长轮询是出于必要而诞生的。在长轮询之前,人们习惯于使用短轮询技术。

整个网络都在请求/响应协议上工作,因此服务器无法将消息推送到客户端。必须请求数据的始终是客户。

短轮询技术

在简短的轮询技术中,客户端不断向服务器发送请求并请求新数据。如果没有新数据,服务

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值