轮询和web套接字中的连接

轮询和web套接字中的连接,web,websocket,client,polling,web-development-server,Web,Websocket,Client,Polling,Web Development Server,我对网络开发相当陌生,对一些概念感到困惑。具体来说,我不确定长轮询和web套接字之间的区别 长轮询是否涉及为每个请求启动到服务器的新TCP连接,或者是否存在一个持久TCP连接来完成轮询?如果我理解正确的话,我认为WebSocket允许持久TCP连接,在服务器和客户端之间交换数据,并且在标题中提到了此连接的持续时间 如有任何意见/帮助,将不胜感激 长轮询是客户端向服务器发送http请求的地方。如果服务器有可用于请求的数据,它会在http响应和连接完成时立即返回该数据 如果服务器没有立即获得任何数据

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

长轮询是否涉及为每个请求启动到服务器的新TCP连接,或者是否存在一个持久TCP连接来完成轮询?如果我理解正确的话,我认为WebSocket允许持久TCP连接,在服务器和客户端之间交换数据,并且在标题中提到了此连接的持续时间


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

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

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

如果在时间限制到期之前服务器中没有新数据可用,则服务器返回一个响应,表示它还没有数据,并且http套接字已完成。此时,客户机在一个新套接字上发出一个新请求,并重新开始整个过程

长轮询是否涉及为每个请求启动到服务器的新TCP连接,或者是否存在一个持久TCP连接来完成轮询

每次都有新的连接。这就是为什么投票并不特别有效

如果我理解正确的话,我认为WebSocket允许持久TCP连接,在服务器和客户端之间交换数据,并且在标题中提到了此连接的持续时间

webSocket是一种持久连接,可以持续很长时间,然后数据可以随时由客户端或服务器发送。与http请求相比,webSocket连接具有额外的设置,但是一旦建立,与长轮询相比,webSocket连接的效率会更高

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


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

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

如果在时间限制到期之前服务器中没有新数据可用,则服务器返回一个响应,表示它还没有数据,并且http套接字已完成。此时,客户机在一个新套接字上发出一个新请求,并重新开始整个过程

长轮询是否涉及为每个请求启动到服务器的新TCP连接,或者是否存在一个持久TCP连接来完成轮询

每次都有新的连接。这就是为什么投票并不特别有效

如果我理解正确的话,我认为WebSocket允许持久TCP连接,在服务器和客户端之间交换数据,并且在标题中提到了此连接的持续时间

webSocket是一种持久连接,可以持续很长时间,然后数据可以随时由客户端或服务器发送。与http请求相比,webSocket连接具有额外的设置,但是一旦建立,与长轮询相比,webSocket连接的效率会更高

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