2015-04-06 11 views
11

Sono nuovo nello sviluppo di applicazioni Web front-end. Sto ricevendo un errore di connessione WebSocket come segue:Errore Websocket lucido

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

ho guardato questo errore WebSocket e ho trovato dirottati verso pagine seguenti.

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

Ho poi scaricato nginx sulla mia macchina Windows 7 e ha aggiunto il seguente commento in nginx.conf, salvati e giustiziati EseguiApplicazione().

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

Questo non sembra risolvere il problema. Penso che potrebbe essere necessario aggiungere alcune cose extra nel file nginx.conf o metterlo in una directory specifica. Si prega di aiutare. Grazie!

curato la sceneggiatura nginx.conf come segue:

 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

La risposta ha funzionato? In tal caso, si prega di accettare la mia risposta: P –

risposta

4

Dopo aver lottato su questo stesso problema per alcuni giorni, ho scoperto che il problema era che il firewall impediva il funzionamento del websocket. Avevo installato Pandas Antivirus e Firewall era abilitato. Quando l'ho spento e ho utilizzato il firewall di Windows e aperto quella porta in ingresso, ha iniziato a funzionare.

Spero che sia utile

5

penso che hai dimenticato queste tre linee meravigliosi di codice necessario per utilizzare WebSockets con Nginx:

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

Aggiungi al tuo location /rstudio/ {}

Inoltre, per impostazione predefinita la connessione verrà chiusa dopo 30 secondi senza attività. Soluzione:

proxy_read_timeout 999999999; 

WebSockets bisogno protocollo HTTP 1.1 per lavorare. Queste 3 linee consentono al browser di connettersi al sito Web tramite HTTP 1.1 e di eseguire il proxy del server come HTTP 1.1.

Se vuoi saperne di più, il here è un post del blog che potrebbe aiutarti.

+0

Non funziona ancora per me. Ecco cosa ho in nginx.conf (modificato la mia domanda). Nginx.conf dovrebbe avere una directory specifica? o come posso verificare se questo è effettivamente in comunicazione con il mio browser? Grazie! – Anuj

+0

Attesa attesa attesa attesa attesa attesa ... Connessione WebSocket a 'ws: //127.0.0.1: 7983/websocket /' non riuscita ... Prova 'ws: //127.0.0.1: 7983/rstudio/websocket /'. –

+0

Ho menzionato la posizione/rstudio nel file conf. Cosa stai affermando esattamente? – Anuj