是的,C# ClientWebSocket
類支持超時設置。您可以通過設置 ClientWebSocket
對象的 ReceiveTimeout
和 SendTimeout
屬性來指定接收和發送超時時間。這些屬性接受 TimeSpan
類型的值,表示超時的持續時間。
以下是一個示例,展示了如何為 ClientWebSocket
設置超時:
using System;
using System.Net.WebSockets;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// 創建一個新的 ClientWebSocket 實例
using (var webSocket = new ClientWebSocket())
{
// 設置連接超時時間
webSocket.ConnectTimeout = TimeSpan.FromSeconds(5);
// 設置接收超時時間
webSocket.ReceiveTimeout = TimeSpan.FromMinutes(1);
// 設置發送超時時間
webSocket.SendTimeout = TimeSpan.FromMinutes(1);
try
{
// 連接到 WebSocket 服務器
await webSocket.ConnectAsync("ws://example.com", CancellationToken.None);
// 發送和接收數據...
}
catch (WebSocketException ex) when (ex.WebSocketErrorCode == WebSocketError.Timeout)
{
Console.WriteLine("操作超時: " + ex.Message);
}
catch (Exception ex)
{
Console.WriteLine("發生錯誤: " + ex.Message);
}
}
}
}
在這個示例中,我們設置了連接超時為 5 秒,接收超時為 1 分鐘,發送超時為 1 分鐘。如果在這些時間內操作未完成,將引發相應的超時異常。