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:
- Müştəri
Upgrade: websocketbaşlığı ilə HTTP sorğusu göndərir və WebSocket protokoluna keçid edir. - Server keçidi təsdiqləyir və müvafiq başlıq ilə cavab verir.
- 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);