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

问题描述

我有一个 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。

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...