websocket-sharp v1.2.0
Unity/.NET 4.x compatible websocket-sharp maintenance release.
Highlights since v1.1.0:
- Added fixed HTTP/WebSocket handshake parser guardrails: 8 KiB header section, 2 KiB request/header line, and 64 parsed header fields.
- Added regression coverage for oversized handshakes, too-long request/header lines, and header-count flooding rejected before WebSocket sessions start.
- Added fragment abuse coverage for many small fragments exceeding the assembled-message limit and abrupt disconnect during fragmented messages.
- Added resource-abuse stress coverage: 50 rejected handshake clients and 25 fragment-limit clients complete without blocking a valid echo client or stranding sessions.
- Added public API snapshot guardrails for exported public types, constructors, methods, properties, events, fields, and enum values.
- Added Unity/IL2CPP static compatibility scan for known incompatible constructs such as delegate BeginInvoke/EndInvoke, runtime code generation, Thread.Abort, binary serialization, P/Invoke, runtime compilation, remoting, and dynamic assembly loading.
- Added client-side malicious handshake response coverage for too many headers, too-long status/header lines, and invalid status lines.
- Assembly identity remains stable for Unity references: AssemblyVersion stays 1.0.2.32832.
- FileVersion and ProductVersion are both 1.2.0.0.
Verification:
- dotnet build websocket-sharp/websocket-sharp.csproj -c Release --no-restore: passed, 0 warnings, 0 errors.
- dotnet test tests/WebSocketSharp.Tests/WebSocketSharp.Tests.csproj -c Release --no-restore: 94/94 passed.
- dotnet test tests/WebSocketSharp.StressTests/WebSocketSharp.StressTests.csproj -c Release --no-restore --filter TestCategory=Stress: 8/8 passed.
- CI passed on dev and main for commit 75daf03.
- No BeginInvoke/EndInvoke usage remains in websocket-sharp or tests.
Assets:
- websocket-sharp.dll: Unity Editor/Standalone managed plugin for .NET 4.x / net472.
- websocket-sharp-v1.2.0-unity-net472.zip: DLL plus README.
WebGL remains unsupported by this managed socket implementation; Unity WebGL should keep using the browser JavaScript WebSocket layer.
SHA256:
- websocket-sharp.dll: 99BA34F444957094F35C1ECC97EE196752074DFC78B6C9436E2B47A6E1D16978
- websocket-sharp-v1.2.0-unity-net472.zip: 7067037D9C1BD3CCA474EEDD4606784E34EE5332095642A14CAEB789A8E39F12