
相关依赖

我们之前学习的服务器开发,主要是这样的模型:
我们是否需要,服务器主动给客户端发送消息这样的场景呢?

当前已有的知识,主要是 HTTP。但 HTTP 自身是难以实现这种消息推送效果的
HTTP 要想实现类似的效果,就需要基于“轮询”的机制
1s,500ms…),就主动地给服务器发起一个请求,问看看当前玩家 1 落子了没有很明显,像这样的轮询操作,开销是比较大的,成本也是比较高的
这就类似于去餐馆吃饭
因此,websocket 就是实现消息推送的一个主要的方式
Websocket 也是一个应用层协议,下层是基于 TCP 的

- FIN:代表当前是不是一个结束报文
RSV:保留位,可能以后有什么用,但现在还没任何用处opcode:描述了当前这个 websocket 报文是什么类型 ping 帧,还是一个 pong 帧(发 ping 回 pong)Payload len:表示当前数据包携带的数据载荷长度 websocket 数据报能承载的载荷长度是非常非常长的Payload Data:实际报文要传输的数据载荷使用一个网页端,尝试和服务器建立 websocket 连接
HTTP 请求,这个 HTTP 请求中会带有特殊的 header,比如: Connection: UpgradeUpgrade: Websocketheader 其实就是在告知服务器,我们要进行协议升级。如果服务器支持 websocket,就会返回一个特殊的 HTTP 响应,这个响应的状态码是 101(切换协议)websocket 进行通信了这个过程就类似于: