WebSocket是一种比较新的协议,它是伴随着html5规范而生的,虽然还比较年轻,但大多主流浏览器都已经支持。它使用方便、应用广泛,已经渗透到前后端开发的各种场景中。
对http一问一答中二式流程(就是从所周之的“长轮询”技要啦)的不满,催生了支持双向通信的WebSocket诞生。WebSocket是个不太干净协议。
1问WebSocket:WebSocket协议只能浏览器发起么?
不是。目前此协议的受众的也不仅仅是web开发者。
WebSocket只是一种协议,它和http协议一样,使用类似okhttp的组件,可以在任何地方进行调用,甚至可以借助WebSocket实现RPC框架。
2问WebSocket:WebSocket和HTTP什么关系?
WebSocket和http一样,都是处于OSI模型中的最高层:应用层。
WebSocket借助http协议进行握手,握手成功后,就会变身为TCP通道,从此与http不再相见。
使用netstat或者ss,能够看到对应的连接,它与处于抽象层的socket,在外观上没有区别。
3问WebSocket:WebSocket和长轮询有什么区别?
长轮询,就是客户端发送一个请求,服务端将一直在这个连接上等待(当然有一个超长的超时时间)