Mensagens mascaradas no WebSocket

· Recursos

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.