2015-04-06 14 views
11

Ich bin neu in Front-End-Web-App-Entwicklung. Ich erhalte eine WebSocket-Verbindungsfehler wie folgt:Shiny Websocket Fehler

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

ich diesen WebSocket Fehler nachgeschlagen und fand auf den folgenden Seiten umgeleitet.

Shiny & RStudio Server: "Error during WebSocket handshake: Unexpected response code: 404"

WebSocket connection failed with nginx, nodejs and socket.io

Rstudio and shiny server proxy setting

ich dann nginx auf meinem Windows 7 Rechner heruntergeladen und hinzugefügt, um den folgenden Kommentar in nginx.conf, gespeichert und ausgeführt runapp().

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

Dies schien das Problem nicht zu lösen. Ich denke, dass ich einige Extras in die nginx.conf-Datei hinzufügen oder in ein bestimmtes Verzeichnis einfügen muss. Bitte helfen. Vielen Dank! wie folgt

das nginx.conf Skript EDITED:

 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"; 
    } 
+0

Hat meine Antwort funktioniert? Wenn ja, bitte akzeptieren Sie meine Antwort: P –

Antwort

4

Nachdem ich einige Tage mit dem gleichen Problem zu kämpfen hatte, stellte ich fest, dass das Problem darin bestand, dass die Firewall das Funktionieren des Websockets verhinderte. Ich hatte Pandas Antivirus installiert und die Firewall wurde aktiviert. Als ich es abstellte und die Windows-Firewall verwendete und diesen eingehenden Port öffnete, begann es zu arbeiten.

Hoffe es hilft

5

Ich denke, man diese drei wunderbaren Zeilen Code erforderlich vergessen WebSockets mit Nginx zu verwenden:

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

Fügen Sie sie Ihrer location /rstudio/ {}

Außerdem wird standardmäßig die Verbindung nach 30 Sekunden ohne Aktivität geschlossen. Umgehung:

proxy_read_timeout 999999999; 

WebSockets müssen HTTP 1.1-Protokoll für die Arbeit. Mit diesen drei Zeilen stellt der Browser mithilfe von HTTP 1.1 eine Verbindung mit der Website her und Proxyserver als HTTP 1.1.

Wenn Sie mehr wissen möchten, here ist ein Blog-Beitrag, der helfen könnte.

+0

Es funktioniert immer noch nicht für mich. Hier ist, was ich in nginx.conf habe (meine Frage bearbeitet). Sollte nginx.conf ein bestimmtes Verzeichnis haben? oder wie überprüfe ich, ob das tatsächlich mit meinem Browser kommuniziert? Vielen Dank! – Anuj

+0

Warten warten warten warten warten warten ... WebSocket-Verbindung zu 'ws: //127.0.0.1: 7983/websocket /' fehlgeschlagen ... Versuchen Sie stattdessen "ws: //127.0.0.1: 7983/rstudio/websocket /". –

+0

Ich habe location/rstudio in der Datei conf erwähnt. Was genau sagst du? – Anuj