C# 创建基于客户端websocket的控制台应用程序

C# 创建基于客户端websocket的控制台应用程序,c#,linux,.net-core,C#,Linux,.net Core,目前,我正在使用REST使用我的控制台应用程序从外部服务/服务器使用数据,但它不是非常实时的 有谁能提供一个非常基本的工作示例,说明我如何将.net核心控制台应用程序连接到wss://echo.websocket.org 我从以下几点开始: using System; using System.Net.WebSockets; namespace websocket { class Program { static void Main(string[] args)

目前,我正在使用REST使用我的控制台应用程序从外部服务/服务器使用数据,但它不是非常实时的

有谁能提供一个非常基本的工作示例,说明我如何将.net核心控制台应用程序连接到
wss://echo.websocket.org

我从以下几点开始:

using System;
using System.Net.WebSockets;

namespace websocket
{
    class Program
    {
        static void Main(string[] args)
        {

            using (var ws = new WebSocket("wss://echo.websocket.org"))
            {

            }

        }
    }
}

但是
新的WebSocket(“wss://echo.websocket.org)
显示错误
无法创建抽象类型或接口“WebSocket”[WebSocket]csharp(CS0144)的实例

如果您不想使用库来解决问题,您必须与.NET的某些内部结构进行斗争

下面的代码应该提供一个简单的工作解决方案

公共静态异步任务主(字符串[]args)
{
CancellationTokenSource=新的CancellationTokenSource();
使用(var ws=new ClientWebSocket())
{
等待ws.ConnectAsync(新Uri(“wss://echo.websocket.org),取消令牌。无);
字节[]缓冲区=新字节[256];
while(ws.State==WebSocketState.Open)
{
var result=await ws.ReceiveAsync(新的ArraySegment(缓冲区),CancellationToken.None);
if(result.MessageType==WebSocketMessageType.Close)
{
等待ws.CloseAsync(WebSocketCloseStatus.NormalClose,string.Empty,CancellationToken.None);
}
其他的
{
HandleMessage(缓冲区、结果、计数);
}
}
}
}
私有静态void HandleMessage(字节[]缓冲区,整数计数)
{
WriteLine($“接收到{BitConverter.ToString(缓冲区,0,计数)}”);
}

WebSocket
类是
.Net
中的抽象类,不能实例化抽象类

请查看此链接:

请参阅以下来源以获取指南:


WebSocket类
是.Net中的抽象类,不能实例化抽象类。请查看以下链接:尝试此链接或此链接:以实现您的WebSocket客户端