Websocket 客户端未连接到 Websocket 服务器

时间:2021-05-25 17:59:32

标签: c# asp.net websocket tcp websocket-sharp

我有一个 NET Core 3.1 API,我在其中创建了一个 websocket 服务器并在 API 运行时启动它

API 中的 Program.cs 类:

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using System;
using System.IO;
using WebSocketSharp;
using WebSocketSharp.Server;

namespace aspnetcore_api_server
{
    public class Program
    {
        public class ServerData : WebSocketBehavior
        {
            protected override void OnMessage(MessageEventArgs e)
            {
                Console.WriteLine("WS Status: Received message from client: " + e.Data);
                Send(e.Data);
            }
        }

        public static void Main(string[] args)
        {
            var wssv = new WebSocketServer("ws://127.0.0.1:1234");

            wssv.Start();

            Console.WriteLine("WS Server started on ws://127.0.0.1:1234");

            Console.ReadKey();
            wssv.Stop();
        }
    }
}

然后我有一个 ASP NET MVC Web 应用程序,我试图从中开始与服务器的连接:

using System;
using WebSocketSharp;

namespace aspnet_client
{
    public class WebSocketService
    {
        public WebSocketService()
        {
        }

        public void StartConnection()
        {
            using (WebSocket ws = new WebSocket("ws://127.0.0.1:1234"))
            {
                ws.Connect();
                ws.Send("Hello from client ASP NET web app!");              
            }
        }

        private static void Ws_OnMessage(object sender, MessageEventArgs e)
        {
            Console.WriteLine("Receiveed from the server: " + e.Data);
        }
    }
}

当我尝试通过从客户端执行 ws.Send 将消息发送到服务器时,它抛出一个错误说明:System.InvalidOperationException: '当前连接状态未打开。'

在 CMD 中,我正在运行一个命令 netstat -aon,我可以清楚地看到 TCP 端口已打开并正在侦听(见附图)。

enter image description here

我在客户端和服务器端都使用 WebSocketSharp。

有人可以解释一下我在这里可能做错了什么或遗漏了什么吗?

0 个答案:

没有答案