WebSocket client for old and new platforms
On this page:
ClientWebSocket, Rebex WebSocket makes it possible to use the WebSocket
protocol on both modern and legacy .NET platforms. These include:
- .NET Framework 4.5-4.8 on Windows 7 SP1 or higher
- .NET Framework 2.0/3.5/4.0 on Windows XP SP3 or higher
- .NET Core 3.0/3.1 on Windows, Windows IoT, Linux and macOS
- .NET Core 2.0/2.1/2.2 on Windows, Linux and macOS
- .NET Compact Framework 3.5/3.9 on Windows CE 5.0 or higher
- Xamarin.Android 9.1 or higher
- Xamarin.iOS 10.3 or higher
Please note that Rebex WebSocket for .NET Compact Framework 3.5/3.9 is available as a separate product.
ClientWebSocket, Rebex WebSocket makes it possible to use TLS 1.2, TLS 1.1 and TLS 1.0 on all supported .NET platforms.
Many websites already disabled support for TLS 1.0 and 1.1 and their number will grow in the future. WebSocket clients need to support TLS 1.2 to be able to communicate with those websites.
The following TLS 1.3 ciphers are supported:
As of 2017, usage of SHA-1 hash algorithm in X.509 certificates has been mostly deprecated - major browsers and operating systems no longer accept server or user certificates with signatures based on SHA-1 hashes, and trusted certification authorities no longer issue such certificates. This means that WebSocket clients that lack of SHA-2 support no longer work.
Rebex WebSocket solves this problem and makes it possible to use certificates signed using SHA-2 on legacy platforms.
Rebex WebSocket offers the following TLS ciphers utilizing message authentication codes based on SHA-2 hash algorithms on all supported platforms:
* Ciphers based on ECDHE or ECDSA need an external plugin on some legacy platforms.
Rebex WebSocket supports Server Name Indication (SNI) on all platforms. SNI is a TLS protocol extension that specifies a way for TLS/SSL clients to indicate to servers which site they are connecting to, which makes it possible to run multiple virtual HTTPS-secured websites on a single IP address.
Support for this is ubiquitous nowadays - unless you use a legacy HTTPS implementation on platforms such as .NET Compact Framework 3.5. In that case, Rebex WebSocket is the solution.
Renegotiation Indication Extension (RFC 5746) fixes a vulnerability in the TLS/SSL protocol that makes it possible for an attacker to hijact TLS/SSL connections during renegotiation in some scenarios.
Elliptic Curve Cryptography (ECC) is an attractive alternative to classic public-key algorithms based on modular exponentiation. Compared to the algorithms such as RSA, DSA or Diffie-Hellman, elliptic curve cryptography offers equivalent security with smaller key sizes.
Rebex WebSocket supports the following elliptic curve TLS ciphers:
And the following curves:
- NIST P-256 curve
- NIST P-384 curve
- NIST P-521 curve
- Brainpool P-256 R1 curve
- Brainpool P-384 R1 curve
- Brainpool P-512 R1 curve
- Curve 25519