(转)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