Mensajes WebSocket enmascarados

· Features

Desde sgcWebSockets 4.4.8 se ha mejorado el log de mensajes WebSocket. Hasta ahora, los mensajes se guardaban tal cual los enviaba o recibía el socket; esto significaba que, cuando el cliente WebSocket enviaba un mensaje, primero se enmascaraba y después se guardaba en el log. Como el mensaje estaba enmascarado, no se podía leer con facilidad, así que el log era inútil para los mensajes WebSocket enviados por el cliente (lo mismo ocurría con los mensajes WebSocket recibidos por el servidor).

Ahora los frames WebSocket se guardan sin enmascarar por defecto (puede personalizarse mediante la propiedad LogFile.UnMaskFrames). Así, cuando el cliente envíe un mensaje, se guardará sin enmascarar y cuando el servidor reciba un mensaje WebSocket, también se guardará sin enmascarar (en el caso del servidor, se guarda enmascarado y sin enmascarar, porque el servidor puede gestionar varios protocolos y, al leer el buffer, todavía no sabe cuál es el protocolo).

Mensajes enmascarados del cliente WebSocket 

Antes de este cambio, los mensajes WebSocket enviados se guardaban enmascarados y el texto no podía leerse.

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. 

 Mensajes sin enmascarar del cliente WebSocket

A continuación se muestra el log, donde los mensajes enviados no están enmascarados.

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.