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: www.esegece.com:2053 Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: hKokOwscWkDOF6Y3liZ2yA== Origin: www.esegece.com:2053 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: www.esegece.com:2053 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: www.esegece.com:2053 Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: wSZGb+0KEUZacGDFcz47gg== Origin: www.esegece.com:2053 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: www.esegece.com:2053 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.
