Back to questions
Junior — Middle
59
Можете ли вы объяснить, что из себя представляет протокол WebSocket и как он используется для обмена данными в реальном времени?
Answer from AI
sobes.tech AI
WebSocket — это протокол связи, который обеспечивает двунаправленный (full-duplex) канал между клиентом и сервером поверх одного TCP-соединения.
В отличие от классического HTTP, где клиент отправляет запрос и ждёт ответа, WebSocket позволяет серверу и клиенту обмениваться сообщениями в любое время без необходимости повторного установления соединения.
Это особенно полезно для приложений с обменом данными в реальном времени, например:
- Чаты
- Онлайн-игры
- Финансовые торговые платформы
Пример использования в C# с библиотекой System.Net.WebSockets:
using System;
using System.Net.WebSockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
ClientWebSocket ws = new ClientWebSocket();
await ws.ConnectAsync(new Uri("wss://example.com/socket"), CancellationToken.None);
string message = "Hello, WebSocket!";
var bytes = Encoding.UTF8.GetBytes(message);
await ws.SendAsync(new ArraySegment<byte>(bytes), WebSocketMessageType.Text, true, CancellationToken.None);
var buffer = new byte[1024];
var result = await ws.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
Console.WriteLine("Received: " + Encoding.UTF8.GetString(buffer, 0, result.Count));
await ws.CloseAsync(WebSocketCloseStatus.NormalClosure, "Closing", CancellationToken.None);
}
}
Таким образом, WebSocket позволяет создавать интерактивные приложения с минимальной задержкой обмена данными.