一、簡介
WebSocket-Sharp是一個使用C#編寫的WebSocket協議庫,可以在.NET平台上實現WebSocket服務器和客戶端的開發。這個庫是使用.Net的HttpListener類來實現HTTP服務器的,而對於WebSocket的支持,是利用HttpListener類的特性來實現的。WebSocket-Sharp是開源的,擁有完善的文檔和示例代碼,是.NET平台實現WebSocket協議的一個好選擇。
二、安裝
在使用WebSocket-Sharp之前,需要先安裝它。WebSocket-Sharp可以通過NuGet包管理器來獲取,或者也可以從GitHub倉庫獲取源代碼進行編譯。下面是通過NuGet安裝WebSocket-Sharp的步驟:
Install-Package WebSocketSharp
三、使用
1. WebSocket服務器
WebSocket-Sharp提供了WebSocketServer類來實現WebSocket服務器。下面是一個使用WebSocketServer的示例代碼:
using WebSocketSharp; using System; namespace WebSocketServerDemo { class Program { static void Main(string[] args) { var server = new WebSocketServer("ws://localhost"); server.AddWebSocketService("/myservice"); server.Start(); Console.WriteLine("WebSocket server started."); Console.ReadKey(true); server.Stop(); Console.WriteLine("WebSocket server stopped."); } } public class MyService : WebSocketBehavior { protected override void OnMessage(MessageEventArgs e) { if (e.IsText) { Console.WriteLine("Received message: " + e.Data); Send("Server received message: " + e.Data); } } } }
這個示例代碼中,首先創建了一個WebSocketServer對象,並指定服務器的URL。然後添加了WebSocket服務,並在服務地址中指定了服務的名稱。最後啟動服務器,並在控制台中等待用戶按下任意鍵停止服務器。在MyService類中覆蓋OnMessage方法來處理接收到的消息。
2. WebSocket客戶端
WebSocket-Sharp提供了WebSocket類來實現WebSocket客戶端。下面是一個使用WebSocket的示例代碼:
using WebSocketSharp; using System; namespace WebSocketClientDemo { class Program { static void Main(string[] args) { using (var ws = new WebSocket("ws://localhost/myservice")) { ws.OnMessage += (sender, e) => { Console.WriteLine("Received message: " + e.Data); }; ws.Connect(); ws.Send("Hello, server!"); Console.ReadKey(true); ws.Close(); } } } }
這個示例代碼中,首先創建了一個WebSocket對象,並指定了連接的URL。然後註冊了一個OnMessage事件處理程序來處理接收到的消息。連接服務器之後,發送了一條消息給服務器,並在控制台中等待用戶按下任意鍵關閉連接。
3. 實現WebSocket協議
WebSocket-Sharp提供了WebSocket協議的封裝,使得用戶可以方便地使用WebSocket協議進行通信。下面是一個使用WebSocket協議的示例代碼:
using WebSocketSharp; using System; namespace WebSocketProtocolDemo { class Program { static void Main(string[] args) { using (var ws = new WebSocket("ws://localhost/myservice")) { ws.OnMessage += (sender, e) => { Console.WriteLine("Received message: " + e.Data); }; ws.Connect(); ws.Send("Hello, server!"); while (true) { Console.Write("Enter your message: "); var message = Console.ReadLine(); if (!string.IsNullOrEmpty(message)) { ws.Send(message); } } } } } }
這個示例代碼中,與前一個示例不同的是,它使用了一個循環來等待用戶輸入消息並發送給服務器。
四、總結
WebSocket-Sharp是一個非常實用的WebSocket協議庫,可以幫助.NET開發人員快速開發WebSocket服務器和客戶端。在使用WebSocket-Sharp的過程中,需要注意在Windows系統上需要管理員權限才能使用HttpListener類。
原創文章,作者:WKQRD,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/361033.html