Rebex WebSocket
WebSocket library for modern and legacy platforms
Download 30-day free trial Buy from $499More .NET libraries
-
Rebex Total Pack
All Rebex .NET libraries together
Back to feature list...
Easy-to-use WebSocket client
On this page:
Simple API
Rebex WebSocket features a simple API that is suitable for most use cases:
// create an instance of WebSocket client
var client = new WebSocketClient();
// connect to a server
client.Connect("ws://echo.example.org");
// send a text message
client.Send("Hello!");
// receive a text message
string response = client.Receive<string>();
// send a binary message
byte[] data = { 1, 2, 3, 4, 5, 6, 7 };
client.Send(data);
// receive a binary message
byte[] reply = client.Receive<byte[]>();
// close the WebSocket
client.Close();
' create an instance of WebSocket client
Dim client As New WebSocketClient()
' connect to a server
client.Connect("ws://echo.example.org")
' send a text message
client.Send("Hello!")
' receive a text message
Dim response As String = client.Receive(Of String)()
' send a binary message
Dim data As Byte() = {1, 2, 3, 4, 5, 6, 7}
client.Send(Data)
' receive a binary message
Dim reply As Byte() = client.Receive(Of Byte())()
' close the WebSocket
client.Close()
Tip: In addition to
string
, the Send
/Receive
methods support a byte array type (byte[]
).
The Receive
method also supports the object
type, returning either a string or a byte array, depending
on the message type received from the server.
Tip:
WebSocketClient
also supports a Task-based asynchronous variant of this API.
Classic .NET-like API
Rebex WebSocket also features an asynchronous API that mimics .NET's ClientWebSocket
API:
// connect to a server
await client.ConnectAsync("ws://echo.example.org", CancellationToken.None);
// send a message
byte[] message = Encoding.UTF8.GetBytes("Hello!");
await client.SendAsync(new ArraySegment<byte>(message), WebSocketMessageType.Text, true, CancellationToken.None);
' connect to a server
Await client.ConnectAsync("ws://echo.example.org", CancellationToken.None)
' send a message
Dim message As Byte() = Encoding.UTF8.GetBytes("Hello!")
Await client.SendAsync(New ArraySegment(Of Byte)(message), WebSocketMessageType.Text, True, CancellationToken.None)
Tip:
WebSocketClient
also supports a synchronous variant of this API.
Options and settings
Use Options
property to configure the WebSocketClient
instance before connecting to the server:
// specify a subprotocol
client.Options.AddSubProtocol("plus@sftp.ws");
// specify credentials
client.Options.Credentials = new NetworkCredential("username", "password");
// set request header
client.Options.SetRequestHeader("X-Custom-Token", "1234567");
// set keep-alive interval to once-per-minute
client.Options.KeepAliveInterval = new TimeSpan(0, 1, 0);
// connect to a server
client.Connect(uri);
' specify a subprotocol
client.Options.AddSubProtocol("plus@sftp.ws")
' specify credentials
client.Options.Credentials = New NetworkCredential("username", "password")
' set request header
client.Options.SetRequestHeader("X-Custom-Token", "1234567")
' set keep-alive interval to once-per-minute
client.Options.KeepAliveInterval = New TimeSpan(0, 1, 0)
' connect to a server
client.Connect(uri)
Check out TLS/SSL core for an overview of TLS/SSL options.
Back to feature list...