Releases: aevien/websocket-sharp
Release list
websocket-sharp v1.3.1
websocket-sharp v1.3.1
This patch release fixes ordering and lifecycle behavior for asynchronous sends
while preserving the existing public API and Unity assembly identity.
Highlights
- Sequential
SendAsynccalls accepted by one physical connection are written
in FIFO order by a single bounded dispatcher. - Completion callbacks run independently from the network writer, so a slow or
throwing callback does not block later physical sends. MaxAsyncSendQueueLengthcontinues to bound queued, active, and
callback-pending operations.- Closing a connection rejects new sends and completes waiting operations with
falsewhile disposing their payload streams. - Reconnect creates a fresh dispatcher. Data queued for an old connection
cannot be compressed or written through the new connection. - Regression coverage includes immediate binary sends from server
OnOpen,
FIFO ordering, queue overflow, blocked and throwing callbacks, close/reconnect
cancellation, stale compressed payloads, and ordered concurrent-client stress.
Verification
135/135net472unit tests passed.10/10net472stress tests passed.- Immediate server
OnOpenprobe:1000/1000first messages received. - FIFO probe:
20000/20000sequential async-send pairs arrived in call order. - Sustained ordering stress:
100 CCUcompleted100000ordered messages
without loss, duplication, ordering errors, or stranded sessions. - Public API snapshot and Unity/IL2CPP compatibility gates passed.
Compatibility
- Target framework:
net472. - Unity: managed plugin for .NET 4.x-compatible Editor, Standalone, and tested
mobile/IL2CPP targets. - WebGL: not supported by this managed TCP socket implementation.
- Assembly name and strong name remain unchanged.
AssemblyVersionremains1.0.2.32832for existing Unity binary references.- File and product version:
1.3.1.0.
Assets
websocket-sharp.dll: the signednet472library.websocket-sharp-v1.3.1-unity-net472.zip: DLL, license, README, and these
release notes.SHA256SUMS.txt: SHA-256 checksums for the DLL and ZIP.
websocket-sharp v1.3.0
websocket-sharp v1.3.0
This release continues the Unity/.NET 4.x modernization of the fork while
preserving the existing websocket-sharp assembly identity.
Highlights
- Bounded server handshake execution with configurable active and pending
limits for bothWebSocketServerandHttpServer. - Strict WebSocket handshake body policy: upgrade and successful handshake
bodies are rejected, while HTTP error bodies are capped at 64 KiB. - Bounded, opt-in redirect handling for status codes 301, 302, 303, 307, and
308, including relative locations and explicit WSS-to-WS downgrade control. - Cross-origin redirects no longer forward HTTP credentials, cookies, custom
headers, or TLS client certificates, including reconnect paths. - Digest authentication uses the redirected request path and current proxy
CONNECT authority. - Built-in handshake Debug logs redact request paths, queries, credentials,
cookies, custom values, response bodies, and reflected untrusted values. - Expanded
net472unit, stress, public API, and Unity/IL2CPP static coverage.
Compatibility
- Target framework:
net472. - Unity: managed plugin for .NET 4.x-compatible Editor, Standalone, and tested
mobile/IL2CPP targets. - WebGL: not supported by this managed TCP socket implementation.
- Assembly name and strong name remain unchanged.
AssemblyVersionremains1.0.2.32832for existing Unity binary references.- File and product version:
1.3.0.0.
Assets
websocket-sharp.dll: the signednet472library.websocket-sharp-v1.3.0-unity-net472.zip: DLL, license, README, and these
release notes.SHA256SUMS.txt: SHA-256 checksums for the DLL and ZIP.
websocket-sharp v1.2.1
websocket-sharp v1.2.1
Patch release focused on examples and release metadata.
Changes
- Modernized legacy Example, Example2, and Example3 projects to SDK-style net472 builds.
- Added documented examples for async client lifecycle, server resource limits, secure/proxy client settings, and Unity MonoBehaviour lifecycle usage.
- Added example builds to CI.
- Updated DLL file/product/informational version to 1.2.1.0 while keeping AssemblyVersion("1.0.2.32832") stable for Unity binary compatibility.
Verification
- dotnet build websocket-sharp/websocket-sharp.csproj -c Release: passed, 0 warnings, 0 errors.
- Unit tests: 94/94 passed on net472.
- Stress tests: 8/8 passed on net472.
- Console examples: Example, Example2, Example3, ClientLifecycle, ServerWithLimits, and SecureAndProxyClient all build on net472.
- Runtime example smoke: ServerWithLimits + ClientLifecycle open/send/echo/close passed.
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
websocket-sharp v1.1.0
Unity/.NET 4.x compatible websocket-sharp maintenance release.
Highlights since v1.0.6:
- Proxy connect regression coverage for HTTP CONNECT success, authentication, rejection, and timeout paths.
- Compressed frame hardening: corrupt deflate payloads and compressed control frames are rejected with protocol close code 1002.
- Close lifecycle regression coverage for local close, remote close, simultaneous close, and abrupt disconnect scenarios.
- Protocol fuzz coverage for malformed control/data frames, reserved opcodes, invalid lengths, and masking rules.
- Assembly identity remains stable for Unity references: AssemblyVersion stays 1.0.2.32832.
- FileVersion and ProductVersion are both 1.1.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: 81/81 passed.
- dotnet test tests/WebSocketSharp.StressTests/WebSocketSharp.StressTests.csproj -c Release --no-restore --filter TestCategory=Stress: 7/7 passed.
- CI passed on dev and main for commit bd39120.
- 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.1.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: 1CDC270BE56D9F4841C472D8E7C67EED8F213AE0218604D57D2746C95458CCE1
- websocket-sharp-v1.1.0-unity-net472.zip: 7871EA07500982735E2E204A8D1358A64B5F611BF79E9A8D980CF1A015C594A8
websocket-sharp v1.0.6 Unity Preview 1
Unity/.NET 4.x preview build for net472.
Changes in this preview:
- Bounds TLS handshakes with existing timeout settings.
WebSocket.ConnectionTimeoutnow also limits clientwss://TLS handshake time.- Secure
WebSocketServer.HandshakeTimeoutandHttpServer.HandshakeTimeoutnow also limit server TLS handshakes before the first HTTP/WebSocket request. - Adds regression coverage for silent TLS peers on client, secure WebSocketServer, and secure HttpServer paths.
- Adds stress coverage for 20 silent TLS handshakes while a valid secure echo client opens, echoes, and closes.
Verification:
dotnet build websocket-sharp\websocket-sharp.csproj -c Release --no-restorepassed.dotnet test tests\WebSocketSharp.Tests\WebSocketSharp.Tests.csproj -c Release --no-restorepassed: 52/52.dotnet test tests\WebSocketSharp.StressTests\WebSocketSharp.StressTests.csproj -c Release --no-restore --filter TestCategory=Stresspassed: 7/7.- GitHub Actions
build-testpassed ondevandmainfor commit0d51b06e. - No
BeginInvoke/EndInvokeusage remains inwebsocket-sharpor tests.
Compatibility:
- Target framework remains
net472. - Assembly name remains
websocket-sharp. AssemblyVersion("1.0.2.32832")remains unchanged for Unity binary reference compatibility.- File/product version is
1.0.6.0. - WebGL remains unsupported for this managed socket DLL; use Unity/browser JavaScript WebSocket code there.
websocket-sharp v1.0.5 Unity Preview 1
Unity-oriented preview release for the maintained fork.
Target:
- net472 / Unity .NET 4.x profile
- Suitable for Unity Editor, Standalone and mobile IL2CPP/Mono plugin import where managed .NET sockets are available
- WebGL is not targeted because Unity WebGL uses the browser JavaScript WebSocket stack
- Legacy Windows 7/8 compatibility is intentionally not a target
Changes since v1.0.4-unity-preview.1:
- Added FrameReadTimeout for partial WebSocket frame reads
- Idle open connections with no incoming bytes are not closed by FrameReadTimeout
- Partial frame header stalls and declared payload stalls now close with protocol error without delivering OnMessage
- Added server WebSocketBehavior.FrameReadTimeout configuration
- Updated README and version metadata to 1.0.5.0
Validation before release:
- Release build: passed, 0 warnings, 0 errors
- Unit tests: 49/49 passed
- Stress tests: 6/6 passed
- BeginInvoke/EndInvoke guard: no matches in websocket-sharp or tests
- Stress coverage included 500 async lifecycle cycles, 50 CCU x 100 echo messages, 50 simultaneous ConnectAsync clients, close lifecycle stress, resource lifecycle stress and slow-handshake timeout coverage
Artifacts:
- websocket-sharp.dll SHA256: 0C5832E41CCDD6D4F718F263BC75694648059B20BC9B3F07FF8D55B4422C3C88
- websocket-sharp-v1.0.5-unity-preview.1-unity-net472.zip SHA256: D2AA3929ACEE096ED3E7BFEB18F11DED1D4ECA389AD906A3404A2C32403FDF83
websocket-sharp v1.0.4 Unity Preview 1
Unity-oriented preview release for the maintained fork.
Target:
- net472 / Unity .NET 4.x profile
- Suitable for Unity Editor, Standalone and mobile IL2CPP/Mono plugin import where managed .NET sockets are available
- WebGL is not targeted because Unity WebGL uses the browser JavaScript WebSocket stack
- Legacy Windows 7/8 compatibility is intentionally not a target
Changes since v1.0.3-unity-preview.1:
- Added GitHub Actions CI for main/dev and manual stress-test workflow
- Added bounded receive/send resource limits: MaxFramePayloadLength, MaxMessagePayloadLength, MaxMessageEventQueueLength, MaxAsyncSendQueueLength
- Added WebSocketBehavior limit properties for server services
- Reject oversized frames/messages with 1009 TooBig before OnMessage delivery
- Added bounded decompression for compressed messages that inflate past the configured limit
- Updated README with release links, CI notes, Unity import guidance and runtime limit documentation
Validation before release:
- Release build: passed, 0 warnings, 0 errors
- Unit tests: 46/46 passed
- Stress tests: 6/6 passed
- BeginInvoke/EndInvoke guard: no matches in websocket-sharp or tests
- Stress coverage included 500 async lifecycle cycles, 50 CCU x 100 echo messages, 50 simultaneous ConnectAsync clients, close lifecycle stress, resource lifecycle stress and slow-handshake timeout coverage
Artifacts:
- websocket-sharp.dll SHA256: A41805197B2E90D889199377FD2984C9841221E6AED75BB68C1D2A47EF44AB56
- websocket-sharp-v1.0.4-unity-preview.1-unity-net472.zip SHA256: D652D05C7810DB01EF20D85208D4A345194D5479E150DACC007A6C3CC589590A
websocket-sharp v1.0.3 Unity Preview 1
Unity-oriented preview release for the maintained fork.
Target:
- net472 / Unity .NET 4.x profile
- Suitable for Unity Editor, Standalone and mobile IL2CPP/Mono plugin import where managed .NET sockets are available
- WebGL is not targeted because Unity WebGL uses the browser JavaScript WebSocket stack
- Legacy Windows 7/8 compatibility was intentionally not preserved as a target
Validation before release:
- Release build: passed, 0 warnings, 0 errors
- Unit tests: 43/43 passed
- Stress tests: 6/6 passed
- Stress coverage included 500 async lifecycle cycles, 50 CCU x 100 echo messages, 50 simultaneous ConnectAsync clients, close lifecycle stress, resource lifecycle stress and slow-handshake timeout coverage
Artifacts:
- websocket-sharp.dll SHA256: E3B972F2BE792B8DA7B4C63C45201DBC3048F3C68128D11AD13E8B841978812A
- websocket-sharp-v1.0.3-unity-preview.1-unity-net472.zip SHA256: 0DBC4B47B10495FCAF3A72F194B511DDC67A8A03909F34885576F98FFD1EDF5F