Не удается отправить данные на сайты HTTPS с помощью веб-сокетов - PullRequest
0 голосов
/ 21 марта 2020

Я пытаюсь отправить данные на веб-страницу aspx из веб-сокетов. он работает нормально для веб-страниц HTTP, но HTTPS-страниц он дает «Соединение WebSocket с» wss: //0.0.0.0: 8080 / «не удалось: ошибка тайм-аута открытия WebSocket» ..

Вот мой веб-сокет код

    List<IWebSocketConnection> sockets = new List<IWebSocketConnection>();
    Fleck.WebSocketServer server = new Fleck.WebSocketServer("wss://127.0.0.1:8181");
    public Main()
    {
        InitializeComponent();
        btnConnect.Text = "Start";
    }

    public void Start()
    {
        server.Start(socket =>
        {
            socket.OnOpen = () =>
            {
                Console.WriteLine("Connection open.");
                sockets.Add(socket);
            };
            socket.OnClose = () =>
            {
                Console.WriteLine("Connection closed.");
                sockets.Remove(socket);
            };
            socket.OnMessage = message =>
            {
                Console.WriteLine("Client Says: " + message);
                sockets.ToList().ForEach(s => s.Send(" client says: " + message));

            };
        });

        btnConnect.Text = "Stop";
    }

    private void btnSend_Click(object sender, EventArgs e)
    {
        try
        {
            sockets.ToList().ForEach(s => s.Send(tbReply.Text));
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

    private void btnConnect_Click(object sender, EventArgs e)
    {
        try
        {
            if (btnConnect.Text == "Stop")
            {
                server.Dispose();
                btnConnect.Text = "Start";
                return;
            }
            Start();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

вот мой код веб-клиента

<script type="text/javascript">
     function WebSocketTest() {

         if ("WebSocket" in window) {
           var ws = new WebSocket("wss://127.0.0.1:8181/echo");
           ws.onopen = function() {
              ws.send("Client Connected!");
              alert("Connected!");
           };

           ws.onmessage = function (evt) {
               var received_msg = evt.data;
               var label = document.getElementById("lblMessage");
               label.innerText = received_msg;
           };

           ws.onclose = function() {
              alert("Connection is closed...");
           };
        } else {
           alert("WebSocket NOT supported by your Browser!");
        }
     }
</script>

Когда происходит изменение wss в веб-сокете и веб-клиенте, он работает нормально. Но я хочу работать и в HTTPS.

...