Sobes.tech
Junior — Middle

Veb soketlərin nə olduğunu və müştəri və server arasında ikitərəfli əlaqə qurmaq üçün necə işlədiklərini izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

WebSocketlər — müştəri və server arasında tək TCP bağlantısı üzərində ikitərəfəli (full-duplex) əlaqəni təmin edən protokoldur.

Necə işləyir:

  1. Müştəri Upgrade: websocket başlığı ilə HTTP sorğusu göndərir və WebSocket protokoluna keçid edir.
  2. Server keçidi təsdiqləyir və müvafiq başlıq ilə cavab verir.
  3. Uğurlu əl sıxışmadan sonra, hər iki tərəfin istənilən vaxt məlumat göndərə biləcəyi daimi əlaqə qurulur.

Bu, klassik HTTP-dən fərqlidir; burada müştəri sorğu göndərir və server cavab verir, və əlaqə bağlanır. WebSocketlər serverin sorğu olmadan müştəriyə məlumat göndərməsinə imkan verir, bu isə çatlar, oyunlar, real vaxt və s. üçün əlverişlidir.

C#-da System.Net.WebSockets istifadə edərək nümunə:

using System.Net.WebSockets;
using System.Threading;
using System.Text;

// WebSocket vasitəsilə mesaj göndərmə və qəbul nümunəsi
ClientWebSocket ws = new ClientWebSocket();
await ws.ConnectAsync(new Uri("wss://example.com/socket"), CancellationToken.None);

// Mesaj göndər
string message = "Hello";
byte[] bytes = Encoding.UTF8.GetBytes(message);
await ws.SendAsync(new ArraySegment<byte>(bytes), WebSocketMessageType.Text, true, CancellationToken.None);

// Mesaj qəbul
var buffer = new byte[1024];
var result = await ws.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
string received = Encoding.UTF8.GetString(buffer, 0, result.Count);