这里只记录一下自己总结的区别:
- 长连接:
- 每次发送http请求以及响应后,http连接关闭,TCP连接都不关闭,直到http keep-alive 时间到TCP连接才关闭;
- 服务端是不管有没有新数据都会马上产生响应;
- 长轮询:
- 每次发送http请求以及响应后,http连接关闭,TCP连接也关闭,而且收到请求后发起第二次ajax请求(再次连接TCP,http);
- 服务端收到请求后是先监测有没有新数据,如果没有,则先不进行响应,待有新数据时再响应。(这里客户端有一个等待时间,如果等待时间内都没有收到相应,那么也会重新发送ajax请求);
- WebSocket
- 只在开始时,客户端发出请求,客户端和服务端建立一次http请求,之后两端就可以都主动向对方推送;
- 基于tcp、全双工通信;
- 需要人工进行断开。