Как отправить «Hello World» для тестирования функции WebSocket в EmbedIO - PullRequest
0 голосов
/ 19 октября 2019

Я хочу протестировать функцию WebSocket в EmbedIO. (Версия 3.1.1) Вот мой код (C #):

    using System;
using System.IO;
using System.Net.WebSockets;
using System.Text;
using System.Threading.Tasks;
//using EmbedIO;

namespace EmbedIOWebSocketHelloWorld
{
    class Program
    {
        protected static async Task<string> ReadString(ClientWebSocket ws)
        {
            var buffer = new ArraySegment<byte>(new byte[8192]);
            using var ms = new MemoryStream();
            WebSocketReceiveResult result;
            do
            {
                result = await ws.ReceiveAsync(buffer, default);
                ms.Write(buffer.Array, buffer.Offset, result.Count);
            }
            while (!result.EndOfMessage);
            return Encoding.UTF8.GetString(ms.ToArray());
        }

        static async Task Main()
        {
            var websocketUrl = new Uri("wss://echo.websocket.org");
            var clientSocket = new ClientWebSocket();
            await clientSocket.ConnectAsync(websocketUrl, default);
            var buffer0 = new ArraySegment<byte>(Encoding.UTF8.GetBytes("Hello!"));
            string response1 = await ReadString(clientSocket).ConfigureAwait(false);
            Console.WriteLine("Done!");
        }
    }
}

Но код не сработал, ответа не последовало. Если я выполню тест из браузера Google Chrome, по адресу: https://www.websocket.org/echo.html Это работает, вы можете ввести в поле «Все» что угодно, затем нажать кнопку «Подключить» и нажать кнопку «Отправить», вы увидитенемедленное эхо вашего сообщения отправлено. Что не так с моим кодом? Кстати, я использую Visual Studio 2019 версии 16.3.5 в Windows 10 (версия 1903). Таргетинг .NET Core 3.0. Пожалуйста посоветуй! Спасибо!

...