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