首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >轮询和web套接字中的连接

轮询和web套接字中的连接
EN

Stack Overflow用户
提问于 2018-03-30 03:00:31
回答 1查看 1.2K关注 0票数 0

我对网络开发相当陌生,对一些概念感到困惑。具体来说,我不知道长轮询和网络套接字之间有什么区别。

长轮询是否涉及为每个请求启动到服务器的新TCP连接,还是存在一个持久的TCP连接来进行轮询?如果我正确理解它,我认为WebSockets允许在服务器和客户端之间交换数据的持久TCP连接,并且在头文件中提到了这个连接的持续时间。

如有任何意见/帮助,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-30 03:19:19

长轮询是客户端向服务器发送http请求的地方。如果服务器有可用于请求的数据,它将在http响应和连接完成时立即返回该数据。

如果服务器没有立即拥有任何数据,那么它会将连接挂起一段时间(设计为小于典型的客户端超时)。如果数据在时间限制之前到达,则使用该数据发送http响应并完成连接。

如果在时间限制到期之前服务器中没有可用的新数据,那么服务器将返回一个响应,说明它还没有数据,并且已经完成了http套接字。此时,客户端在新套接字上发出新请求,并再次启动整个过程。

长轮询是否涉及为每个请求启动到服务器的新TCP连接,还是存在一个持久的TCP连接来进行轮询?

每次都有新的连接。这就是为什么投票效率不高的原因。

如果我正确理解它,我认为WebSockets允许在服务器和客户端之间交换数据的持久TCP连接,并且在头文件中提到了这个连接的持续时间。

webSocket被设计为一个持久的连接,可以持续很长时间,然后数据可以由客户端或服务器在任何时候发送。与http请求相比,webSocket连接有更多的设置,但一旦建立,它的效率会比长轮询高得多。

在这些参考资料中解释的更多信息:

用于实时数据的websocket与rest?

在等待服务器端的一次性响应时,对websocket进行长轮询

HTML5 WebSocket:网络可伸缩性的量子飞跃

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49567817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档