是的,C#的ClientWebSocket
類支持加密。為了實現加密,您需要使用WebSockets
協議的安全版本,即wss://
(WebSocket Secure)。在使用ClientWebSocket
時,您需要指定WebSockets
作為子協議。
以下是一個簡單的示例,展示了如何使用ClientWebSocket
連接到使用wss://
協議的WebSocket服務器:
using System;
using System.Net.WebSockets;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// 替換為您的WebSocket服務器地址
string uri = "wss://your-websocket-server.com";
// 創建一個ClientWebSocket實例
using (ClientWebSocket clientWebSocket = new ClientWebSocket())
{
// 嘗試連接到WebSocket服務器
await clientWebSocket.ConnectAsync(new Uri(uri), CancellationToken.None);
// 發送一條消息到服務器
string message = "Hello, WebSocket Server!";
byte[] messageBytes = System.Text.Encoding.UTF8.GetBytes(message);
await clientWebSocket.SendAsync(new ArraySegment<byte>(messageBytes), WebSocketMessageType.Text, true, CancellationToken.None);
// 接收來自服務器的消息
ArraySegment<byte> receivedBuffer = new ArraySegment<byte>(new byte[1024 * 4]);
WebSocketReceiveResult result;
do
{
result = await clientWebSocket.ReceiveAsync(receivedBuffer, CancellationToken.None);
string receivedMessage = System.Text.Encoding.UTF8.GetString(receivedBuffer.Array, 0, result.Count);
Console.WriteLine("Received message: " + receivedMessage);
} while (!result.CloseStatus.HasValue);
}
}
}
請注意,為了使wss://
連接工作,您需要一個支持SSL/TLS的WebSocket服務器。如果您使用的是自簽名證書,您可能需要在客戶端信任該證書。這可以通過將證書添加到受信任的根證書頒發機構列表中或使用ServicePointManager
類來實現。