WebSocket Masked Messages

· Funktionen

Ab sgcWebSockets 4.4.8 wurde das Log der WebSocket-Nachrichten verbessert. Bislang wurden die Nachrichten so gespeichert, wie sie vom Socket gesendet/empfangen wurden, d. h. wenn eine WebSocket-Nachricht vom WebSocket-Client gesendet wurde, wurde sie zuerst maskiert und dann ins Log geschrieben. Da die Nachricht maskiert war, ließ sie sich nicht leicht lesen, sodass das Log für die vom Client gesendeten WebSocket-Nachrichten unbrauchbar war (Gleiches galt für WebSocket-Nachrichten, die der Server empfing).

Jetzt werden die WebSocket-Frames standardmäßig unmaskiert gespeichert (das lässt sich über die Eigenschaft LogFile.UnMaskFrames anpassen). Wenn der Client also eine Nachricht sendet, wird sie unmaskiert gespeichert, und wenn der Server eine WebSocket-Nachricht empfängt, wird sie ebenfalls unmaskiert gespeichert (im Fall des Servers wird sie maskiert und unmaskiert gespeichert, da der Server mehrere Protokolle handhaben kann und beim Lesen des Buffers nicht weiß, welches Protokoll gerade verwendet wird).

WebSocket-Client maskierte Nachrichten 

Vor dieser Änderung wurden die gesendeten WebSocket-Nachrichten maskiert gespeichert und der Text war nicht lesbar.

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. 

 WebSocket-Client unmaskierte Nachrichten

Unten findest du das Log, in dem die gesendeten Nachrichten nicht maskiert sind.

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.