温馨提示×

c# clientwebsocket有回调吗

c#
小樊
81
2024-11-22 21:58:02
栏目: 编程语言

C# WebSocket客户端没有内置的回调,但是您可以使用事件来处理接收到的消息。以下是一个简单的示例,展示了如何使用 HttpClientWebSocket 类创建一个 WebSocket 客户端,并使用事件处理接收到的消息:

using System;
using System.Net.Http;
using System.Threading.Tasks;
using System.Net.WebSockets;

namespace WebSocketClient
{
    class Program
    {
        static async Task Main(string[] args)
        {
            string url = "wss://your-websocket-server.com";
            using (HttpClient httpClient = new HttpClient())
            {
                using (WebSocket webSocket = new WebSocket(httpClient, url))
                {
                    // 订阅接收消息的事件
                    webSocket.MessageReceived += (sender, e) =>
                    {
                        Console.WriteLine($"收到消息: {e.Data}");
                    };

                    // 连接到 WebSocket 服务器
                    await webSocket.ConnectAsync();

                    // 发送一条消息到服务器
                    string message = "Hello, WebSocket Server!";
                    byte[] messageBytes = System.Text.Encoding.UTF8.GetBytes(message);
                    await webSocket.SendAsync(new ArraySegment<byte>(messageBytes));

                    // 等待服务器关闭连接
                    await webSocket.CloseAsync(WebSocketCloseStatus.NormalClosure, "Goodbye, WebSocket Server!", CancellationToken.None);
                }
            }
        }
    }
}

在这个示例中,我们创建了一个名为 WebSocketClient 的控制台应用程序。我们使用 HttpClientWebSocket 类创建了一个 WebSocket 客户端,并订阅了 MessageReceived 事件。当接收到消息时,事件处理器将打印消息内容。我们还展示了如何连接到 WebSocket 服务器、发送消息以及等待服务器关闭连接。

0