Блестящая ошибка Websocket

Я новичок в разработке веб-приложений с интерфейсом. Я получаю сбой подключения к WebSocket следующим образом:

WebSocket connection to 'ws://127.0.0.1:7983/websocket/' failed: Error in connection establishment: net::ERR_EMPTY_RESPONSE

Я искал эту ошибку WebSocket и обнаружил отклонение на следующие страницы.

Блестящий и RStudio-сервер: "Ошибка во время рукопожатия WebSocket: Неожиданный код ответа: 404"

Сбой соединения с WebSocket с nginx, nodejs и socket.io

Rstudio и блестящие настройки прокси сервера

Затем я загрузил nginx на свой компьютер с Windows 7 и добавил следующий комментарий в nginx.conf, сохранил и выполнил runApp().

location /rstudio/ {
 rewrite ^/rstudio/(.*)$ /$1 break;
 proxy_pass http://localhost:7983;
 proxy_redirect http://localhost:7983/ $scheme://$host/rstudio/;
}

Это, похоже, не решило проблему. Я думаю, что мне может понадобиться добавить некоторые дополнительные материалы в файл nginx.conf или поместить их в определенный каталог. Пожалуйста помогите. Спасибо!

ИЗМЕНИТЬ nginx.conf script следующим образом:

        location /rstudio/ {
    rewrite ^/rstudio/(.*)$ /$1 break;
    proxy_pass http://127.0.0.1:5127;
    proxy_redirect http://127.0.0.1:5127/ $scheme://$host/rstudio/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    }

Ответ 1

В течение нескольких дней после этой проблемы я обнаружил, что проблема заключается в том, что брандмауэр препятствует работе websocket. У меня был установлен Pandas Антивирус, и в нем был включен брандмауэр. Когда я отключил его и использовал брандмауэр Windows и открыл этот входящий порт, он начал работать.

Надеюсь, что это поможет

Ответ 2

Я думаю, вы забыли эти три замечательные строки кода, необходимые для использования WebSockets с Nginx:

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

Добавьте их в свой location /rstudio/ {}

Кроме того, по умолчанию соединение будет закрыто через 30 секунд без активности. Обход проблемы:

proxy_read_timeout 999999999;

Для работы WebSockets необходим протокол HTTP 1.1. Эти 3 строки заставляют браузер подключаться к веб-сайту с использованием HTTP 1.1 и прокси-сервера вашего сервера как HTTP 1.1.

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