使用Javascript和C#,与套接字的连接出现错误“ WebSocket打开握手超时”

大约4个小时的研究……我们去了。

我有一个C#程序,用于发送和侦听特定套接字中出现的所有内容。使用套接字,C#可以向其发送内容并可以从中接收消息。现在,转到我的JavaScript文件,我正在使用WebSocket接口与C#通信,但不起作用(通常在几分钟后超时)。当Socket联机时,JavaScript代码将花费大约4分钟,然后引发错误,提示“ WebSocket打开握手已超时”。我知道它能找到的原因是,当ip的端口不存在时,JavaScript文件在接下来的几秒钟内引发错误。

我所做的事情:

关闭所有防火墙,在ip和端口的开头同时使用ws和wss(例如:wss://xxx.xxx.x.xx:11111),更改端口,将ip更改为仍可访问的有效ip,研究4小时。

C#:

IPHostEntry ipHost = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ipAddr = IPAddress.Parse("ip");
IPEndPoint localEndPoint = new IPEndPoint(ipAddr, 11111);

Socket listener = new Socket(ipAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

try
{
    listener.Bind(localEndPoint);

    listener.Listen(10);

    while (true)
    {

        Console.WriteLine("Waiting connection...");

        Socket clientSocket = listener.Accept();

        byte[] bytes = new Byte[1024];
        string data = null;

        while (true)
        {

            int numByte = clientSocket.Receive(bytes);

            data += Encoding.ASCII.GetString(bytes, 0, numByte);

            if (data.IndexOf("<EOF>") > -1)
            {
                break;
            }
        }

        Console.WriteLine("Text received -> {0} ", data);
        byte[] message = Encoding.ASCII.GetBytes("Test Server");

        clientSocket.Send(message);

        clientSocket.Shutdown(SocketShutdown.Both);
        clientSocket.Close();
    }
}
catch (Exception e)
{
    Console.WriteLine(e.ToString());
}

JavaScript:

socket = new WebSocket("wss://ip:11111");
socket.onopen = function()
{
    alert("Connected!");
}
socket.onerror = function()
{
    alert("Connection Failed");
}

ip是本地的

长话短说,C#可以与自身通信,而JavaScript可以找到它,但不能与其通信。

评论