.netcore websocket
时间: 2023-10-04 21:05:53 浏览: 35
在 .NET Core 中使用 WebSocket,你需要使用 System.Net.WebSockets 命名空间中的类。下面是一个简单的示例代码,使用 WebSocket 与客户端进行通信:
```csharp
using System;
using System.Net;
using System.Net.WebSockets;
using System.Threading;
using System.Threading.Tasks;
public class WebSocketHandler
{
public async Task HandleWebSocketRequest(HttpContext context, WebSocket webSocket)
{
byte[] receiveBuffer = new byte[1024];
while (webSocket.State == WebSocketState.Open)
{
WebSocketReceiveResult receiveResult = await webSocket.ReceiveAsync(new ArraySegment<byte>(receiveBuffer), CancellationToken.None);
if (receiveResult.MessageType == WebSocketMessageType.Text)
{
string message = Encoding.UTF8.GetString(receiveBuffer, 0, receiveResult.Count);
// Handle incoming message
await HandleMessage(message);
}
}
}
private async Task HandleMessage(string message)
{
// Handle message logic
}
}
```
在上面的示例代码中,我们定义了一个 WebSocketHandler 类,它的 HandleWebSocketRequest 方法接收一个 HttpContext 和一个 WebSocket 对象作为参数。在 HandleWebSocketRequest 方法中,我们使用 while 循环来不断接收客户端发送的消息。当接收到消息时,我们使用 HandleMessage 方法来处理消息。在 HandleMessage 方法中,你可以自定义逻辑来处理接收到的消息。