C# पर WebSocket: .NET के साथ real-time एप्लिकेशन बनाना

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C# पर WebSocket का परिचय real-time एप्लिकेशन के लिए

आधुनिक वेब एप्लिकेशनों को क्लाइंट और सर्वर के बीच तत्काल डेटा ट्रांसफर की आवश्यकता होती है। पारंपरिक HTTP प्रोटोकॉल, जो "अनुरोध-प्रतिक्रिया" मॉडल पर काम करता है, उन कार्यों के लिए अप्रभावी है जहां कम विलंबता और निरंतर जानकारी अपडेट महत्वपूर्ण हैं: ऑनलाइन चैट, शेयर बाजार कोटेशन, मल्टीप्लेयर गेम, मॉनिटरिंग सिस्टम। WebSocket बचाव में आता है — एक प्रोटोकॉल जो स्थायी द्विदिश कनेक्शन प्रदान करता है।

C# (.NET) इकोसिस्टम में, WebSocket का कार्यान्वयन System.Net.WebSockets नेमस्पेस के अंतर्निहित क्लासेस के साथ-साथ उच्च-स्तरीय लाइब्रेरी SignalR के माध्यम से उपलब्ध है। इस लेख में हम दोनों दृष्टिकोणों पर चर्चा करेंगे, काम करने वाले उदाहरण लिखेंगे और real-time एप्लिकेशनों की आर्किटेक्चरल विशेषताओं पर चर्चा करेंगे। यह सामग्री शुरुआती और अनुभवी .NET डेवलपर्स दोनों के लिए उपयोगी होगी।



WebSocket की मूल बातें: यह C# में कैसे काम करता है

WebSocket एक प्रोटोकॉल है जो प्रारंभिक HTTP हैंडशेक (अपग्रेड अनुरोध) के बाद कनेक्शन को स्थायी द्विदिश मोड में बदल देता है। C# में, WebSocket के साथ काम एसिंक्रोनस प्रोग्रामिंग पर आधारित है जिसमें async और await कीवर्ड का उपयोग किया जाता है।



C# में एक सरल WebSocket सर्वर बनाना

एक बुनियादी सर्वर उदाहरण देखें जो WebSocket कनेक्शन स्वीकार करता है और क्लाइंट को इको रिस्पॉन्स देता है। इसके लिए हम अंतर्निहित HttpListener या Kestrel (ASP.NET Core) क्लास का उपयोग करेंगे। नीचे ASP.NET Core पर आधारित एक उदाहरण दिया गया है।

// Startup.cs या Program.cs (मिनिमल API)var builder = WebApplication.CreateBuilder(args);var app = builder.Build();

app.UseWebSockets();

app.Map("/ws", async (HttpContext context) =>{ if (context.WebSockets.IsWebSocketRequest) { using var webSocket = await context.WebSockets.AcceptWebSocketAsync(); await Echo(webSocket); } else { context.Response.StatusCode = 400; }});

async Task Echo(WebSocket webSocket){ var buffer = new byte[1024 * 4]; while (webSocket.State == WebSocketState.Open) { var result = await webSocket.ReceiveAsync( new ArraySegment<byte>(buffer), CancellationToken.None); if (result.MessageType == WebSocketMessageType.Close) { await webSocket.CloseAsync( WebSocketCloseStatus.NormalClosure, "Closing", CancellationToken.None); } else { // डेटा वापस भेजें (इको) await webSocket.SendAsync( new ArraySegment<byte>(buffer, 0, result.Count), result.MessageType, result.EndOfMessage, CancellationToken.None); } }}

app.Run();

कोड बुनियादी यांत्रिकी दर्शाता है: AcceptWebSocketAsync HTTP अनुरोध को WebSocket में बदलता है, और ReceiveAsync और SendAsync विधियां एसिंक्रोनस डेटा आदान-प्रदान सुनिश्चित करती हैं। कनेक्शन की स्थिति को संभालना और इसे सही ढंग से बंद करना महत्वपूर्ण है।



C# में WebSocket क्लाइंट

क्लाइंट पक्ष भी सरल है। ClientWebSocket क्लास का उपयोग करें:

using System.Net.WebSockets;

async Task ConnectAndSend(){ using var client = new ClientWebSocket(); await client.ConnectAsync(new Uri("ws://localhost:5000/ws"), CancellationToken.None);

var message = "नमस्ते, WebSocket!"; var bytes = Encoding.UTF8.GetBytes(message); await client.SendAsync(new ArraySegment<byte>(bytes), WebSocketMessageType.Text, true, CancellationToken.None);

var buffer = new byte[1024]; var result = await client.ReceiveAsync( new ArraySegment<byte>(buffer), CancellationToken.None); var response = Encoding.UTF8.GetString(buffer, 0, result.Count); Console.WriteLine($"प्र

ब्लॉग

पुस्तक अनुशंसाएँ