区别:
socket并不是一个协议,而是抽象出来的一层,应用于应用层和传输控制层之间的一组接口,
socket是传输控制层协议,websocket是应用层协议
websocket是什么样的协议,具有什么有点
首先,websocket是一个持久化的协议,相对于HTTP这种非持久的协议来说 HTTP的生命周期通过Request来界定,一个Request一个Response ,在HTTP1.0中 这次HTTP请求结束啦 HTTP1.1进行了改进,使得有一个keep-alive,也就是说,在一个HTTP连接中,可以发送多个Request,接收多个Response。 但是请记住 Request = Response , 在HTTP中永远是这样,也就是说一个request只能有一个response。而且这个response也是被动的,不能主动发起。 ajax轮询、long poll是非常消耗资源的: ajax轮询 需要服务器有很快的处理速度和资源。(速度) long poll 需要有很高的并发,也就是说同时接待客户的能力。(场地大小) 在这种情况下、websocket就出现了,websocket可以主动给客户端推送消息了,只需要经过一次HTTP请求,就可以做到源源不断的信息传送了。(在程序设计中,这种设计叫做回调,即:你有信息了再来通知我,而不是我傻乎乎的每次跑来问你) 这样的协议解决了上面同步有延迟,而且还非常消耗资源的这种情况