WebSocket和HTTP协议有什么区别?

53 阅读1分钟

WebSocket

  • 支持端对端通讯
  • 可以由client发起,也可以由server发起
  • 用于:消息通知,直播间讨论区,聊天室,协同编辑

代码演示

客户端代码

image.png

服务端代码

image.png

WebSocket连接过程

  • 先发起一个HTTP请求
  • 成功之后再升级到WebSocket协议,再通讯

image.png

WebSocket 和 HTTP 区别

  • WebSocket 协议名是ws://,可双端发起请求
  • WebSocket 没有跨域限制
  • 通过send和onmessage通讯(HTTP通过req和res)

ws可升级为wss(像https)

image.png

扩展:实际项目推荐socket.io,API更简洁

image.png

WebSocket 和 HTTP 长轮询的区别

  • HTTP长轮询:客户端发起请求,服务端阻塞,不会立即返回
  • WebSocket:客户端可发起请求,服务端也可发起请求

image.png

注意:HTTP长轮询,需要处理timeout,即timeout之后重新发起请求