长连接,长轮询,websocket有什么区别和联系?

发布于 2022-09-05 19:56:41 字数 382 浏览 9 评论 0

今天看websocket原理,发现网上有的人说websocket是HTTP长连接,有的说是webSocket TCP连接。
HTTP长连接的意思是设置connection:keep-alive的意思吗?是不是连接时间很长就算是长连接啊?

对于长轮询,发送请求后HTTP连接不断开,除非数据变动需要响应或者超时或者断网。那么在这一次轮询中HTTP连接也是长久的啊,这算是长连接吗?

为什么网上说“使用传统的 HTTP 轮询或者长连接的方式也可以实现类似服务器推送的效果,但是这类方式都存在资源消耗过大或推送延迟等问题。”使用websocket建立了连接之后服务端就会一直推送消息给客户端,而不需要像长轮询那样每次轮询都有建立新的HTTP,TCP连接。那么使用websocket的时候一直不断开连接难道不算是长连接?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夏の忆 2022-09-12 19:56:41

轮询就是一般就是设置一个无限的循环,不停的发起ajax请求,直到得到需要的结果。

例如:

h5支付,当打开支付页面后不断发送请求,查询用户是否完成了支付
如果没有,继续请求
如果是,跳到支付成功显示页面

所以,轮询只是一波又一波的ajax请求而已,并不是长连接

感性不性感 2022-09-12 19:56:41

轮询就是自己不断去看有没数据。

以点餐排号为例,轮询就是每隔一段时间就去看看有位没有。短的轮询就是看到没位时就坐下来休息一下再去问。长轮询就是一直在前台耗着,一定要服务员给你个位,通常坚持一段时间之后服务员把你赶走(或者你自己放弃了),你一坐下也不休息马上又去找服务员,开始新一轮长轮询。

短轮询就是没结果时直接返回,长轮询就是没结果等到有结果。

keep-alive说的是对底层tcp链接的复用,没keep-alive也能长轮询。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文