如何发送“ Hello World”以在EmbedIO中测试WebSocket功能

时间:2019-10-18 21:55:30

标签: c# .net websocket embedio

我想在EmbedIO中测试WebSocket的功能。 (版本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 它的工作原理是,您可以在“消息”框中键入所需的任何内容,然后单击“连接”按钮,然后单击“发送”按钮,您将看到已发送消息的立即回显。 我的代码有什么问题? 顺便说一句,我正在Windows 10(1903版)上使用Visual Studio 2019版本16.3.5。 定位.NET Core 3.0。 请指教! 谢谢!

0 个答案:

没有答案