उपयोग WebSocketSharp library और आसानी से कनेक्ट:
WebSocket ग्राहक
using System;
using WebSocketSharp;
namespace Example
{
public class Program
{
public static void Main (string[] args)
{
using (var ws = new WebSocket ("ws://dragonsnest.far/Laputa")) {
ws.OnMessage += (sender, e) =>
Console.WriteLine ("Laputa says: " + e.Data);
ws.Connect();
ws.Send ("BALUS");
Console.ReadKey (true);
}
}
}
}
चरण 1
आवश्यक नाम स्थान।
using WebSocketSharp;
WebSocket वर्ग WebSocketSharp नाम स्थान में मौजूद है।
चरण 2
कनेक्ट करने के लिए WebSocket यूआरएल के साथ WebSocket वर्ग का एक नया उदाहरण बना रहा है।
using (var ws = new WebSocket ("ws://example.com")) {
...
}
वेबसॉकेट क्लास System.IDisposable इंटरफ़ेस को विरासत में लेता है, ताकि आप उपयोग कथन का उपयोग कर सकें। और वेबस्केट कनेक्शन बंद स्थिति 1001 (दूर जा रहा है) के साथ बंद हो जाएगा जब नियंत्रण ब्लॉक का उपयोग छोड़ देता है।
चरण 3
WebSocket घटनाओं की स्थापना।
WebSocket.OnOpen
घटना
एक WebSocket.OnOpen
घटना तब होती है जब WebSocket कनेक्शन स्थापित किया गया है।
ws.OnOpen += (sender, e) => {
...
};
ई System.EventArgs.Empty
के रूप में पारित कर दिया है, ताकि आप इसे उपयोग करने की आवश्यकता नहीं है।
WebSocket.OnMessage
घटना
एक WebSocket.OnMessage
घटना तब होती है जब WebSocket संदेश प्राप्त करता है।
ws.OnMessage += (sender, e) => {
...
};
e has passed as a WebSocketSharp.MessageEventArgs.
e.Type property
रिटर्न या तो WebSocketSharp.Opcode.Text या WebSocketSharp.Opcode.Binary कि संदेश की प्रकृति का प्रतिनिधित्व करता है। तो इसे जांचकर, आप यह निर्धारित कर सकते हैं कि आपको किस आइटम का उपयोग करना चाहिए।
यह Opcode.Text देता है, तो आप e.Data संपत्ति है कि एक स्ट्रिंग (पाठ संदेश का प्रतिनिधित्व करता है) देता है का उपयोग करना चाहिए।
या यदि यह Opcode.Binary
देता है, तो आपको ई.रॉडाटा संपत्ति का उपयोग करना चाहिए जो बाइट [] (बाइनरी संदेश का प्रतिनिधित्व करता है) देता है।
if (e.Type == Opcode.Text) {
// Do something with e.Data.
...
return;
}
if (e.Type == Opcode.Binary) {
// Do something with e.RawData.
...
return;
}
`WebSocket.OnError` Event
A `WebSocket.OnError` event occurs when the WebSocket gets an error.
ws.OnError += (sender, e) => {
...
};
ई WebSocketSharp.ErrorEventArgs
के रूप में पारित किया गया है।
e.Message संपत्ति एक स्ट्रिंग है त्रुटि संदेश का प्रतिनिधित्व करता है देता है।
त्रुटि एक अपवाद की वजह से है, तो e.Exception संपत्ति एक System.Exception
उदाहरण है कि त्रुटि के कारण देता है।
WebSocket.OnClose
घटना
एक WebSocket.OnClose घटना तब होती है जब WebSocket कनेक्शन बंद कर दिया गया है।
ws.OnClose += (sender, e) => {
...
};
ई WebSocketSharp.CloseEventArgs
के रूप में पारित हो गया है।
e.Code संपत्ति एक ushort कि करीब के लिए कारण का संकेत स्थिति कोड का प्रतिनिधित्व करता है देता है, और e.Reason संपत्ति एक स्ट्रिंग है कि बंद के लिए कारण का प्रतिनिधित्व करता है देता है।
चरण 4
WebSocket सर्वर से कनेक्ट हो।
ws.Connect();
आप एसिंक्रोनस रूप से सर्वर से कनेक्ट करना चाहते हैं, तो आप WebSocket.ConnectAsync() विधि का उपयोग करना चाहिए।
चरण 5
WebSocket सर्वर से डेटा भेजा जा रहा।
ws.Send (data);
WebSocket.Send विधि अधिभारित है।
आप डेटा भेजने के लिए WebSocket.Send (string), WebSocket.Send (byte[])
, या WebSocket.Send (System.IO.FileInfo)
विधि का उपयोग कर सकते हैं।
आप एसिंक्रोनस रूप से डेटा भेजने के लिए चाहते हैं, तो आप WebSocket.SendAsync विधि का उपयोग करना चाहिए।
ws.SendAsync (data, completed);
और यह भी अगर आप कुछ करने के लिए जब भेजने पूरा हो गया है चाहते हैं, आप किसी भी Action<bool>
प्रतिनिधि को पूरा स्थापित करना चाहिए।
चरण 6
WebSocket कनेक्शन बंद।
ws.Close (code, reason);
आप स्पष्ट रूप से कनेक्शन बंद करना चाहते हैं, तो आप WebSocket.Close
विधि का उपयोग करना चाहिए।
WebSocket.Close विधि अधिभारित है।
आप WebSocket.Close(), WebSocket.Close (ushort), WebSocket.Close (WebSocketSharp.CloseStatusCode), WebSocket.Close (ushort, स्ट्रिंग), उपयोग कर सकते हैं WebSocket.Close (WebSocketSharp.CloseStatusCode, स्ट्रिंग) कनेक्शन बंद करने के लिए विधि।
यदि आप कनेक्शन को असीमित रूप से बंद करना चाहते हैं, तो आपको WebSocket.CloseAsync
विधि का उपयोग करना चाहिए।
पैकेज मैनेजर कंसोल में स्थापित-पैकेज WebSocketSharp –
धन्यवाद आपके तरह के उत्तर के लिए जगदीश। मैंने अपने यूआरएल के साथ कोड ब्लॉक चलाया, लेकिन यह त्रुटि के बाद परिणाम देता है: "त्रुटि | websocket.dohandshake | कोई वेबसाइकिल कनेक्शन प्रतिक्रिया नहीं है"। मुझे यकीन नहीं है कि क्या हो रहा है। मैंने जो किया वह Nuget Console का उपयोग करके WebSocketSharp के पूर्व-रिलीज़ संस्करण को जोड़ा गया था और मेरे यूआरएल का उपयोग कर प्रोग्राम चलाया। जैसा कि मैंने पहले कहा था, मैं अभी भी जावास्क्रिप्ट का उपयोग कर वेबस्केट सर्वर से कनेक्ट कर सकता हूं। कोई सोच? –
कृपया मुझे आंतरिक अपवाद और स्टैकट्रैक जैसे त्रुटि के बारे में अधिक जानकारी दें .. स्क्रीन शॉट बेहतर होगा @ जहांगीरएलम –