JS WebSocket API - Тайм-аут открытия рукопожатия WebSocket при подключении к серверу C # - PullRequest
0 голосов
/ 20 июня 2019

Итак, я пытаюсь смоделировать эхо-сервер в C # с использованием классов TcpListener и TcpClient, этот сервер работает на http://127.0.0.1:6502.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Threading;

namespace WebServer
{
    class Program
    {
        public static TcpListener Server = new TcpListener(IPAddress.Any, 6502);

        public static void Main(string[] args)
        {
            Server.Start();
            Thread ListenerThread = new Thread(Listener);
            ListenerThread.Start();
        }

        public static void Listener()
        {
            while (true)
            {
                TcpClient C = Server.AcceptTcpClient();
                Console.WriteLine(C.Client.RemoteEndPoint + " Connected");
                Thread WorkerThread = new Thread(Worker);
                WorkerThread.IsBackground = true;
                WorkerThread.Start(C);
            }
        }

        public static void Worker(object Client)
        {
            try
            {
                NetworkStream NS = (Client as TcpClient).GetStream();
                StreamReader SR = new StreamReader(NS);
                StreamWriter SW = new StreamWriter(NS);
                while (true)
                {
                    string Line = SR.ReadLine();
                    Console.WriteLine("Recieved " + Line + " From Client " + (Client as TcpClient).Client.RemoteEndPoint);
                    SW.WriteLine(Line);
                    Console.WriteLine("Sent " + Line + " To Client " + (Client as TcpClient).Client.RemoteEndPoint);
                }
            }
            catch { }
        }
    }
}

На стороне клиента яПолучил веб-страницу index.html, размещенную на статическом сервере, который работает на http://127.0.0.1:8080, здесь я использую WebSocket API для создания прямого соединения с сервером.

<script>
    window.addEventListener("load", function() {
        let ws = new WebSocket("ws://127.0.0.1:6502");

        ws.onopen = function() {
            alert("Connection Opened");
            ws.send("A Test Message");
        };

        ws.onmessage = function(e) {
            alert("Recieved: " + e.data);
        };

        ws.onclose = function(e) {
            alert("Connection has been closed");
        };

        ws.onerror = function(e) {
            alert("An error has occured");
        };

    });
</script>

Проблема в том, чтоЯ получаю следующее сообщение об ошибке в консоли:

WebSocket connection to 'ws://127.0.0.1:6502/' failed: WebSocket opening handshake timed out

Что я здесь не так делаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...