MessageWebSocket

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Windows;
using Windows.Networking;
using Windows.Networking.Sockets;
using Windows.Storage;
using Windows.Storage.Streams;

namespace WebSocketClient
{
    class Program
    {
        static void Main()
        {
            var socket = new MessageWebSocket();
            socket.MessageReceived += Socket_MessageReceived;
            new Func<Task>(async () =>
            {
                await socket.ConnectAsync(new Uri("wss://echo.websocket.org"));
                await Socket_SendMessageAsync(socket, "Hello World!");
            })();
            Console.ReadKey(true);
        }

        private static void Socket_MessageReceived(MessageWebSocket sender, MessageWebSocketMessageReceivedEventArgs args)
        {
            using (var dataReader = args.GetDataReader())
            {
                dataReader.UnicodeEncoding = UnicodeEncoding.Utf8;
                string message = dataReader.ReadString(dataReader.UnconsumedBufferLength);
                Console.WriteLine("Received: {0}", message);
            }
        }

        private static async Task Socket_SendMessageAsync(MessageWebSocket socket, string message)
        {
            using (var dataWriter = new DataWriter(socket.OutputStream))
            {
                dataWriter.WriteString(message);
                await dataWriter.StoreAsync();
                dataWriter.DetachStream();
                Console.WriteLine("Sent: {0}", message);
            }
        }
    }
}
原文地址:https://www.cnblogs.com/JebediahKerman/p/MessageWebSocket.html