Я хочу протестировать функцию 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. Пожалуйста посоветуй! Спасибо!