阅读量:0
在C#中实现WebSocket接口后端的话,可以使用ASP.NET Core中的WebSocket类库来实现。以下是一个简单的示例代码:
using System; using System.Net.WebSockets; using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; public class WebSocketHandler { private readonly WebSocket _socket; public WebSocketHandler(WebSocket socket) { _socket = socket; } public async Task HandleWebSocketRequest(HttpContext context) { var buffer = new byte[1024]; WebSocketReceiveResult result = await _socket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None); while (!result.CloseStatus.HasValue) { // 处理接收到的数据 string message = System.Text.Encoding.UTF8.GetString(buffer); Console.WriteLine($"Received message: {message}"); // 发送响应数据 string responseMessage = "Hello from server!"; byte[] responseBuffer = System.Text.Encoding.UTF8.GetBytes(responseMessage); await _socket.SendAsync(new ArraySegment<byte>(responseBuffer), WebSocketMessageType.Text, true, CancellationToken.None); result = await _socket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None); } await _socket.CloseAsync(result.CloseStatus.Value, result.CloseStatusDescription, CancellationToken.None); } }
在你的ASP.NET Core应用程序中,可以通过一个中间件来处理WebSocket请求:
app.UseWebSockets(); app.Use(async (context, next) => { if (context.WebSockets.IsWebSocketRequest) { WebSocket webSocket = await context.WebSockets.AcceptWebSocketAsync(); var handler = new WebSocketHandler(webSocket); await handler.HandleWebSocketRequest(context); } else { await next(); } });
在这个示例中,我们创建了一个WebSocketHandler
类来处理WebSocket连接,并在中间件中进行处理。当接收到WebSocket请求时,会创建一个新的WebSocketHandler
实例,并调用HandleWebSocketRequest
方法来处理WebSocket消息。
希望这个简单示例可以帮助你在C#中实现WebSocket接口后端。