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.
