Ошибка во время рукопожатия WebSocket (установить на VPS) - PullRequest
0 голосов
/ 22 марта 2019

Первый раз, когда я учусь использовать веб-сокеты, а также первый раз, когда я использую VPS-сервер.Была проблема.Уже второй день не могу настроить.

Мои настройки nginx.conf:

http:

http {
    keepalive_timeout 604800;
    proxy_connect_timeout 604800;
    proxy_send_timeout 604800;
    proxy_read_timeout 604800;

    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }

    upstream websocket {
      server 31.31.202.221:1100;
    }

сервер:

server {
location /ws {
    proxy_pass http://ws;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

ТестКлиентский сценарий:

<!DOCTYPE html>
<html>
    <head>
    <title>ffghghhhh</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
    <div>546546546564</div>
    <script>
        var socket = new WebSocket("wss://31.31.202.221/ws");
        socket.onopen = function() {
          console.log("Connected.");
        };

        socket.onclose = function(event) {
          if (event.wasClean) {
        console.log('Closed');
          } else {
        console.log('BOOOOOMMM'); // killed process
          }
          alert('Code: ' + event.code + ' reason: ' + event.reason);
        };

        socket.onmessage = function(event) {
          console.log("Data: " + event.data);
        };

        socket.onerror = function(error) {
          console.log("Error" + error.message);
        };      
        var timerId = setInterval(function() {
          socket.send("Tick!");
        }, 2000);       
    </script>
    </body>
</html>

При запуске сценария выдается ошибка 1006.

Ошибка консоли: (индекс): 11 Соединение WebSocket с 'wss: //31.31.202.221/ws'Сбой: Ошибка во время рукопожатия WebSocket: Неожиданный код ответа: 404 (анонимный) @ (индекс): 11 3 (индекс): 33 WebSocket уже находится в состоянии ЗАКРЫТО или ЗАКРЫТО.

Я уже усталЕсли честно.Я не понимаю, как запустить эти веб-сайты.Брандмауэр создал (включил) условие TCP 127.0.0.1 port 1100 и TCP 31.31.202.221 port 1100

Как это исправить?Что я делаю не так?

PS Также вместо IP я использовал домен.Во всяком случае, та же ошибка.

...