一:HTTP和WebSocket
HTTP : 客户端 -> 服务器端
传统客户端(浏览器)向服务器获取数据只能使用http主动向服务器拉数据,因为http只能从客户端发起请求,没办法从服务器端发起请求。项目中如果要即时的获取消息就只能写个定时器,每隔几秒钟去向服务器发一个http请求,获取最新的数据。http虽然是短连接,但是定时每隔几秒钟去定时发请求,会不断的占用请求,当客户端从服务端没有拉取到数据时,此时这次连接就显的浪费。
WebSocket: 客户端 <-> 服务器端
WebSocket与http最大的不同就是客户端可以主动向服务器端拉取数据,服务器端也可以主动向客户端推送数据,当客户端启动的时候会首先建立一个长连接,当需要的时候服务器端就可以通过该长连接向客户端推送数据。
HTTP与WebSocket的区别
- HTTP采用http协议,WebSocket采用ws协议
- HTTP是短连接,连接响应后即断开;WebSocket是长连接(因是长连接所以同时连接的数量不能太大)
- HTTP只能客户端向服务器发送请求,不能服务器端向客户端发起请求;WebSock