暗号:数乘
在没有Websocket出现之前,我们都是通过ajax进行轮询访问服务端,这样会造成大量的资源浪费,而且不够安全。
Websocket通信原理
Websocket是一个持久化的协议,相对于HTTP来说。当客户端要和服务端建立 WebSocket 连接时,在客户端和服务器的握手过程中,客户端首先会向服务端发送一个 HTTP 请求,包含一个 Upgrade 请求头来告知服务端客户端想要建立一个 WebSocket 连接。
// 相对于正常的http新增的信息
Upgrade: websocket
Connection: Upgrade
当确认客户端升级为Websocket协议之后,此时响应行(General)中状态码 status code 是 101 Switching Protocols , 表示该连接已经从 HTTP 协议转换为 WebSocket 通信协议。当监理webscoket连接之后,服务端就能够源源不断地向客户端输送信息。
Websocket多人通信(小程序)
在微信小程序端,每一个用户都是一个Websocket对象,在连接后端Websocket服务的时候,服务器就会建立一个相对应的Websocket对象,形成前后端的实时交互通信。
在多人通信中,客户端将所有的信息就发送到同一个服务前上面,服务端通过监听事件来获取客户端发送来的数据,如果是握手请求,则发送http 101响应,否则解析得到的数据并打印出来,然后判断是不是断开连接的请求,如果是则断开连接,不然将接收到的数据组装成帧再发送给客户端。由于服务端是共享的,客户端就能接收到其他客户端发送给服务器的信息,达到了多人通信的目的。