c# websocket如何使用
时间: 2023-12-30 20:05:32 浏览: 176
以下是使用C#中的ClientWebSocket类连接WebSocket服务的基本步骤:
1. 引用命名空间System.Net.WebSockets。
2. 创建一个ClientWebSocket实例。
3. 使用ConnectAsync方法连接WebSocket服务。
4. 使用SendAsync方法发送消息到WebSocket服务。
5. 使用ReceiveAsync方法接收WebSocket服务发送的消息。
6. 使用CloseAsync方法关闭WebSocket连接。
下面是一个简单的示例代码:
```csharp
using System;
using System.Net.WebSockets;
using System.Threading;
using System.Threading.Tasks;
public class WebSocketClient
{
private ClientWebSocket _webSocket;
public async Task ConnectAsync(Uri uri)
{
_webSocket = new ClientWebSocket();
await _webSocket.ConnectAsync(uri, CancellationToken.None); }
public async Task SendAsync(string message)
{
var buffer = new ArraySegment<byte>(System.Text.Encoding.UTF8.GetBytes(message));
await _webSocket.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None);
}
public async Task<string> ReceiveAsync()
{
var buffer = new ArraySegment<byte>(new byte[1024]);
var result = await _webSocket.ReceiveAsync(buffer, CancellationToken.None);
return System.Text.Encoding.UTF8.GetString(buffer.Array, 0, result.Count);
}
public async Task CloseAsync()
{
await _webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None);
}
}
```
使用示例:
```csharp
var client = new WebSocketClient();
await client.ConnectAsync(new Uri("ws://localhost:8080"));
await client.SendAsync("Hello, WebSocket!");
var message = await client.ReceiveAsync();
Console.WriteLine(message);
await client.CloseAsync();
```
阅读全文