跳到主要内容

webSocket

什么是WebSocket?​

  • WebSocket是HTML5新增的协议,它的目的是在浏览器和服务器之间建立一个不受限的双向通信的通道,比如说,服务器可以在任意时刻发送消息给浏览器。
  • 让浏览器和服务器之间可以建立无限制的全双工通信,任何一方都可以主动发消息给对方。

webscoket的连接原理​

  • WebSocket 通信是基于 TCP 的,所以它具有 TCP 通信的一些优点,比如可靠性和持久性

    • WebSocket 通信可以保持长连接,因为它使用的是基于 TCP 的通信协议,所以它的连接是持久的
    • WebSocket 通信可以双向通信,也是因为基于TCP,TCP实现了全双工通信 【双向通信】
  • WebSocket 复用了 HTTP 的握手通道

    • 通信双方需要先进行握手,WebSocket在建立握手时,数据是通过HTTP传输的

WebSocket和ajax的区别​

1.本质不同​

Ajax,即异步JavaScript和XML,是一种创建交互式网页应用的网页开发技术;

WebSocket是HTML5一种新的协议,实现了浏览器与服务器全双工通信。其本质是先通过HTTP/HTTPS协议进行握手后创建一个用于交换数据的TCP连接,服务端与客户端通过此TCP连接进行实时通信。

2.生命周期不同​

websocket建立的是长连接,在一个会话中一直保持连接;而ajax是短连接,数据发送和接受完成后就会断开连接。

3.适用范围不同​

websocket一般用于前后端实时数据交互,而ajax前后端非实时数据交互。

4.发起人不同​

Ajax技术需要客户端发起请求,而WebSocket服务器和客户端可以相互推送信息。

webSocket协议是在哪一层的?​

  • 应用层

webSocket和socket的区别​

  • Socket是一种在网络的一种通信机制, Socket通常分为两种类型:TCP和UDP。

  • WebSockets是一种在Web应用中使用的通信协议,基于TCP协议

WebSocket缺点​

  • 服务器长期维护长连接需要一定的成本

  • websocket 是长连接,受网络限制比较大,需要处理好重连