WebSocket:
-
支持端对端通讯
-
可以由client发起,也可以由server发起
-
用于:消息通知,直播间讨论区,聊天室,协同编辑
WebSocket连接过程
-
先发起一个 HTTP 请求
-
成功之后再升级到 WebSocket 协议,再通讯
WebSocket和HTTP协议区别
-
WebSocket 协议名是 ws://, 可双端发起请求
-
WebSocket 没有跨域限制
-
通过 send 和 onmessage 通讯 (HTTP通过req和res)
扩展:实际项目推荐 socket.io, API更简洁
连环问:WebSocket和HTTP长轮询的区别?
1. HTTP 长轮询:客户端发起请求,服务端阻塞,不会立即返回
**2.**WebSocket:客户端可发起请求,服务端也可发起请求