(轉)netcore原生websocket客戶端寫法(ClientWebSocket)


代碼:

using System;
using System.Net.WebSockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Demo
{
    class Program
    {
        async static Task Main(string[] args)
        {
            var client = new ClientWebSocket();
            client.ConnectAsync(new Uri("ws://echo.websocket.org"), CancellationToken.None).Wait();
            StartReceiving(client);
            string line;
            while ((line = Console.ReadLine()) != "exit")
            {
                var array = new ArraySegment<byte>(Encoding.UTF8.GetBytes(line));
                await client.SendAsync(array, WebSocketMessageType.Text, true, CancellationToken.None);
            }
        }
        static async void StartReceiving(ClientWebSocket client)
        {
            while (true)
            {
                var array = new byte[4096];
                var result = await client.ReceiveAsync(new ArraySegment<byte>(array), CancellationToken.None);
                if (result.MessageType == WebSocketMessageType.Text)
                {
                    string msg = Encoding.UTF8.GetString(array, 0, result.Count);
                    Console.ForegroundColor = ConsoleColor.DarkBlue;
                    Console.WriteLine("--> {0}", msg);
                    Console.ForegroundColor = ConsoleColor.DarkGray;
                }
            }
        }
    }
}

原文地址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM