一、websocket的概念
我们应该了解的是websocket是ISO参考模型的应用层的协议之一
它是一种在TCP连接上进行全双工也就是双向通信的协议。有了这个协议,客户端和服务器之间就可以随时互相发送数据,不再像传统HTTP那样一问一答了也就是请求响应。当客户端和服务器的连接一旦建立,不手动关闭或者设置自动关闭就会一直保持。
- 全双工:允许数据在两个方向上同时进行传输
- 半双工:允许数据在两个方向上传输,但是某个时间段内只允许一个方向的传输
二、为什么我们需要WebSocket?
比如我们想要实现网上聊天室或者网上棋类在线对战游戏
HTTP 是“请求-响应”模式: 客户端发起请求,服务器被动响应。
但这种模式有几个问题:
| 问题 | 举例 | 结果 |
|---|---|---|
| 无法实时 | 比如股票价格变化,用户得不断刷新页面才看到新数据 | 用户体验差 |
| 请求多、浪费资源 | 比如每隔500ms轮询一次服务器 | 增加带宽、服务器压力 |
| 响应延迟 | 服务端不能主动通知客户端 | 数据总是滞后 |
轮询


如果我们使用websocket
连接过程如下

同理客户端2的websocket的建立流程也如上图,握手后就“切换”成 WebSocket 协议,不再是 HTTP 请求

基于websocket的网上五子棋对战的大致流程

WebsocketAPI
客户端浏览器API(了解即可)
1.websocket对象创建(javascript)
let was = new WebSocket(URL)
// URL 说明
// 格式 : 协议://ip地址/访问路径
/

最低0.47元/天 解锁文章
1256

被折叠的 条评论
为什么被折叠?



