A partir do sgcWebSockets 4.4.8, o log de mensagens WebSocket foi aprimorado. Até então, as mensagens eram salvas como enviadas/recebidas pelo socket, ou seja, quando uma mensagem era enviada pelo cliente WebSocket, ela era primeiro mascarada e depois salva no log. Como a mensagem estava mascarada, não podia ser lida facilmente, tornando o log inútil para as mensagens enviadas pelo cliente (o mesmo ocorria com as mensagens recebidas pelo servidor).
Agora os frames WebSocket são salvos sem máscara por padrão (isso pode ser personalizado acessando a propriedade LogFile.UnMaskFrames). Portanto, quando o cliente envia uma mensagem, ela é salva sem máscara; e quando o servidor recebe uma mensagem WebSocket, ela também é salva sem máscara (no caso do servidor, ela é salva com e sem máscara, porque o servidor pode lidar com vários protocolos e ao ler o buffer ainda não sabe qual é o protocolo).
Mensagens mascaradas do cliente WebSocket
Antes desta mudança, as mensagens enviadas pelo cliente WebSocket eram salvas mascaradas e o texto não podia ser lido.
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.
Mensagens sem máscara do cliente WebSocket
Veja abaixo o log, onde as mensagens enviadas não estão mascaradas.
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.
