websocket

387 阅读2分钟

是什么

全双工,长连接协议 全双工: 双行道,可以同时服务器发,客户端收;客户端发,服务器收 半双工: 单行道,服务器发的时候客户端只能收;客户端发的时候,服务器只能收(http协议) 长连接: 客户端与服务端持续连接,http是一次连接,拿到数据就中断

有什么用

  1. 支持双向通信,实时性更强。
  2. 更好的二进制支持。
  3. 较少的控制开销。连接创建后,ws客户端、服务端进行数据交换时,协议控制的数据包头部较小。

webpack的热更新就是基于websocket的长连接,建立连接后,webpack检测代码发生变法,向浏览器发出消息,浏览器更新页面

有哪些使用场景

  1. 社交订阅,及时获取朋友的最新动态
  2. 浏览器中的多玩家游戏,需要要获取其他玩家最新的动态
  3. 协同编辑,多人开发使用git很容易造成冲突,如果用长连接编辑代码,就能时时保证我当前操作的版本是其他人更新过的,也就是大家操作的是一个版本
  4. 点击数据流,监控用户在我们的网站做了哪些操作,比如点击按钮的频率,传统方式是使用http,但是也很有限,只能监控一些重要的事件,如果使用长连接,那么可以把用户的行为时时同步到服务器上
  5. 股票报价,k线图更新瞬息万变,通过http不停的建立连接断开连接,倒不如使用socket协议持续保持通信
  6. 多媒体聊天,聊天室,成员交流很频繁的时候必须用长连接
  7. 体育实况频繁变化
  8. 基于位置的动态追踪,如描述司机当前位置
  9. 教育,网上课堂使用长连接传递信息