c# 调用websocket
时间: 2023-08-18 22:05:58 浏览: 49
要在C#中调用WebSocket,需要使用System.Net.WebSockets命名空间。以下是一个简单的示例代码,演示如何连接WebSocket服务器:
```csharp
using System;
using System.Net.WebSockets;
using System.Threading;
using System.Threading.Tasks;
public static async Task ConnectWebSocket()
{
ClientWebSocket webSocket = null;
try
{
webSocket = new ClientWebSocket();
await webSocket.ConnectAsync(new Uri("wss://example.com/ws"), CancellationToken.None);
Console.WriteLine("WebSocket connected!");
// 发送消息
string message = "Hello, WebSocket!";
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(message);
await webSocket.SendAsync(new ArraySegment<byte>(buffer), WebSocketMessageType.Text, true, CancellationToken.None);
// 接收消息
buffer = new byte[1024];
while (webSocket.State == WebSocketState.Open)
{
WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
if (result.MessageType == WebSocketMessageType.Text)
{
string receivedMessage = System.Text.Encoding.UTF8.GetString(buffer, 0, result.Count);
Console.WriteLine("Received message: " + receivedMessage);
}
else if (result.MessageType == WebSocketMessageType.Close)
{
Console.WriteLine("WebSocket closed!");
break;
}
}
}
catch (Exception ex)
{
Console.WriteLine("Exception: " + ex.Message);
}
finally
{
if (webSocket != null)
webSocket.Dispose();
}
}
```
此示例连接到一个名为“example.com”的WebSocket服务器,并发送一条消息。然后,它开始接收来自服务器的消息,直到连接关闭。您可以根据需要修改此代码以满足您的特定需求。