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

Отправка текста WebSocket в C#

Текстовый кадр отправляют через SendAsync с типом WebSocketMessageType.Text. Параметр endOfMessage равен true, если весь текст помещается в один кадр.

Пример может обращаться к стороннему echo-хосту в интернете; он не обязан быть доступен. На echo-сервисе после подключения отправим слово "ping" и проверим, что соединение остаётся Open - отправка не закрывает канал сама по себе:

using System.Net.WebSockets; using System.Text; using ClientWebSocket client = new(); using CancellationTokenSource cts = new(TimeSpan.FromSeconds(8)); await client.ConnectAsync(new Uri("wss://echo.websocket.events"), cts.Token); byte[] frame = Encoding.UTF8.GetBytes("ping"); await client.SendAsync(frame, WebSocketMessageType.Text, true, CancellationToken.None); Console.WriteLine(client.State);

Байты текста готовят заранее через Encoding.UTF8.GetBytes. Длина массива показывает, сколько байт ушло в кадр:

using System.Net.WebSockets; using System.Text; using ClientWebSocket client = new(); using CancellationTokenSource cts = new(TimeSpan.FromSeconds(8)); await client.ConnectAsync(new Uri("wss://echo.websocket.events"), cts.Token); byte[] payload = Encoding.UTF8.GetBytes("lab-send"); await client.SendAsync(payload, WebSocketMessageType.Text, true, CancellationToken.None); Console.WriteLine(payload.Length);

Отправьте на echo-сервис строку "ready" и выведите длину отправленного текста в байтах.

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