Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpWsClo 506 of 509 menu
◀ ▶

Закрытие WebSocket в C#

Корректное завершение клиента - кадр закрытия через CloseAsync с кодом и короткой причиной на английском.

После отправки одного сообщения можно закрыть соединение и вывести статус:

using System.Net.WebSockets; using System.Text; using ClientWebSocket client = new(); using CancellationTokenSource cts = new(TimeSpan.FromSeconds(5)); await client.ConnectAsync(new Uri("wss://echo.websocket.events"), cts.Token); await client.SendAsync( Encoding.UTF8.GetBytes("ping"), WebSocketMessageType.Text, true, CancellationToken.None); await client.CloseAsync( WebSocketCloseStatus.NormalClosure, "done", CancellationToken.None); Console.WriteLine(client.CloseStatus);

Свойство CloseStatusDescription хранит текст причины из ответного кадра сервера. Echo-сервис часто возвращает ту же строку, что передали в CloseAsync:

using System.Net.WebSockets; using System.Text; using ClientWebSocket client = new(); using CancellationTokenSource cts = new(TimeSpan.FromSeconds(5)); await client.ConnectAsync(new Uri("wss://echo.websocket.events"), cts.Token); await client.CloseAsync( WebSocketCloseStatus.NormalClosure, "bye", CancellationToken.None); Console.WriteLine(client.CloseStatusDescription);

Закройте соединение с echo-сервисом с причиной "finished" и выведите код закрытия.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить