(一)通讯过程
红色就是消息流动过程,A给B发送消息,A先发给服务器,服务器再发给B,B 回复 A 的消息,B 将消息先发给服务器,服务器将消息发送给A
(二)什么是 websocket
(1)websocket 协议是基于 TCP 的一种新的网络协议,它实现了 浏览器 与 服务器 的 全双工通信(全双工通信:浏览器既可以主动给服务端发消息,服务券也可以主动给浏览器发消息)
而 http 是无法实现这种功能的,http 是 发送 ---> 请求流程,如果不发送请求,服务端是不能主动给浏览器发消息的
websocket 是一种持久协议(长链接),http是非持久协议(每次服务器发送一个对象后相关的TCP连接就被关闭,也就是说每个连接没有持续到可以传输其他对象。每个TCP连接只能传送一个请求消息和响应消息)
(2)传统的聊天方式
传统的聊天采用 ajax 轮询的方式,(http 方式)采用定时器,向服务器发送请求,但是这样对服务器性能不好,浪费性能和资源