我想在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。 请指教! 谢谢!