从 sgcWebSockets 4.4.8 开始,WebSocket 消息的日志记录已得到改进。此前,消息按套接字发送/接收时的原始状态保存,这意味着当 WebSocket 客户端发送消息时,消息会先被掩码处理,然后再保存到日志中。由于消息已被掩码,无法轻松读取,因此日志对客户端发送的 WebSocket 消息毫无意义(服务器接收的 WebSocket 消息同理)。
现在,默认情况下 WebSocket 帧以非掩码方式保存(可通过访问 LogFile.UnMaskFrames 属性自定义)。因此,当客户端发送消息时,消息将以非掩码方式保存;当服务器接收 WebSocket 消息时,也将以非掩码方式保存(对于服务器,消息将同时以掩码和非掩码方式保存,因为服务器可以处理多种协议,读取缓冲区时不知道具体是哪种协议)。
WebSocket 客户端掩码消息
在此更改之前,发送的 WebSocket 消息以掩码方式保存,文本无法读取。
Stat Connected. Sent 24/02/2021 10:59:01: GET / HTTP/1.1 Host: echo.websocket.org Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: hKokOwscWkDOF6Y3liZ2yA== Origin: echo.websocket.org Sec-WebSocket-Version: 13 Recv 24/02/2021 10:59:01: HTTP/1.1 101 Web Socket Protocol Handshake Access-Control-Allow-Credentials: true Access-Control-Allow-Headers: content-type Access-Control-Allow-Headers: authorization Access-Control-Allow-Headers: x-websocket-extensions Access-Control-Allow-Headers: x-websocket-version Access-Control-Allow-Headers: x-websocket-protocol Access-Control-Allow-Origin: echo.websocket.org Connection: Upgrade Date: Wed, 24 Feb 2021 09:56:07 GMT Sec-WebSocket-Accept: pgtoE2wbo/G1uvjCN/CX7N6OltE= Server: Kaazing Gateway Upgrade: websocket Sent 24/02/2021 10:59:07: œoŽ´'zâØ ?èÆ r®Ç|ÙÑ Lá×zúÇN>¯• Recv 24/02/2021 10:59:07: Hello from sgcWebSockets!!!! Stat Disconnected. Stat Disconnected. Stat Disconnected.
WebSocket 客户端非掩码消息
以下是日志,其中发送的消息未经掩码处理。
Stat Connected. Sent 24/02/2021 11:00:16: GET / HTTP/1.1 Host: echo.websocket.org Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: wSZGb+0KEUZacGDFcz47gg== Origin: echo.websocket.org Sec-WebSocket-Version: 13 Recv 24/02/2021 11:00:16: HTTP/1.1 101 Web Socket Protocol Handshake Access-Control-Allow-Credentials: true Access-Control-Allow-Headers: content-type Access-Control-Allow-Headers: authorization Access-Control-Allow-Headers: x-websocket-extensions Access-Control-Allow-Headers: x-websocket-version Access-Control-Allow-Headers: x-websocket-protocol Access-Control-Allow-Origin: echo.websocket.org Connection: Upgrade Date: Wed, 24 Feb 2021 09:57:22 GMT Sec-WebSocket-Accept: WtGNEtct4WtQ5SAs/PWmvjspj6c= Server: Kaazing Gateway Upgrade: websocket Sent 24/02/2021 11:00:21: [text] Hello from sgcWebSockets!!!! Recv 24/02/2021 11:00:21: Hello from sgcWebSockets!!!! Stat Disconnected. Stat Disconnected. Stat Disconnected.
