Подтвердить что ты не робот

Ошибка: ошибка при установлении соединения: net:: ERR_CONNECTION_REFUSED

Я пытаюсь подключиться к сокету на моем сервере. На моем сервере работает серверный сокет с Rachet на порту 8080. Я пытаюсь запустить этот код:

<script>   

    try{
    conn = new WebSocket('wss://localhost:8080');


conn.onclose = function (e)
{
        //checkUser();
}

conn.onopen = function(e) 
{
    console.log("test");
};

    }catch (error)
{
    console.log(error);
}

  </script>

Но я получаю эту ошибку:

WebSocket connection to 'wss://localhost:8080/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

Когда я пытаюсь подключиться к своей Linux-оболочке, я получаю следующее:

[email protected](none):~# telnet localhost 8080
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
4b9b3361

Ответ 1

CONNECTION_REFUSED является стандартным, когда порт закрыт, но он может быть отклонен, поскольку SSL не выполняет аутентификацию (одна из миллиардов причин). Вы настроили SSL с помощью Ratchet? (Apache отключен) Пробовали ли вы без SSL в JavaScript?

Я не думаю, что у Ratchet есть встроенная поддержка SSL. Но даже если это произойдет, вы сначала захотите попробовать протокол ws://; это намного проще, проще отлаживать и ближе к telnet. Chrome или служба сокета также могут генерировать ошибку REFUSED, если служба не поддерживает SSL (поскольку вы явно запрашивали SSL).

Однако отклоненное сообщение, вероятно, является проблемой на стороне сервера (обычно порт закрыт).

Ответ 2

Во-первых, я бы попробовал незащищенное соединение с веб-сервером. Поэтому удалите один из s из адреса подключения:

conn = new WebSocket('ws://localhost:8080');

Если это не сработает, следующая вещь, которую я бы проверил, - это настройки брандмауэра вашего сервера. Вам нужно открыть порт 8080 как в TCP_IN, так и TCP_OUT.

Ответ 3

В моем случае ответ довольно прост. Пожалуйста, внимательно проверьте жесткий код URL-адреса: это 8080. По какой-то причине значение изменилось на: например, 3030.

Просто обновите порт в строке URL-адреса ajax соответствующему.

conn = new WebSocket('ws://localhost:3030'); //should solve the issue