闪亮的 Websocket 错误
Shiny Websocket Error
我是前端 Web 应用程序开发的新手。我收到如下 WebSocket 连接失败消息:
WebSocket connection to 'ws://127.0.0.1:7983/websocket/' failed: Error in connection establishment: net::ERR_EMPTY_RESPONSE
我查找了这个 WebSocket 错误,发现转移到了以下页面。
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
然后我在我的 Windows 7 机器上下载了 nginx,并在 nginx.conf 中添加了以下注释,保存并执行了 runApp()。
location /rstudio/ {
rewrite ^/rstudio/(.*)$ / break;
proxy_pass http://localhost:7983;
proxy_redirect http://localhost:7983/ $scheme://$host/rstudio/;
}
这似乎没有解决问题。我想我可能需要在 nginx.conf 文件中添加一些额外的东西或将其放在特定目录中。请协助。谢谢!
编辑 nginx.conf 脚本如下:
location /rstudio/ {
rewrite ^/rstudio/(.*)$ / 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";
}
我想你忘记了将 WebSockets 与 Nginx 结合使用所需的这三行精彩代码:
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
将它们添加到您的 location /rstudio/ {}
此外,默认情况下,如果没有 activity,连接将在 30 秒后关闭。
解决方法:
proxy_read_timeout 999999999;
WebSockets 需要 HTTP 1.1 协议才能工作。这 3 行使浏览器使用 HTTP 1.1 连接到网站,并将您的服务器代理为 HTTP 1.1。
如果您想了解更多信息,here 的博客 post 可能会有所帮助。
在同一个问题上苦苦挣扎了几天后,我发现问题出在防火墙阻止了 websocket 工作。我安装了 Pandas 防病毒软件并启用了防火墙。当我关闭它并使用 Windows 防火墙并打开那个传入端口时它开始工作。
希望对您有所帮助
我是前端 Web 应用程序开发的新手。我收到如下 WebSocket 连接失败消息:
WebSocket connection to 'ws://127.0.0.1:7983/websocket/' failed: Error in connection establishment: net::ERR_EMPTY_RESPONSE
我查找了这个 WebSocket 错误,发现转移到了以下页面。
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
然后我在我的 Windows 7 机器上下载了 nginx,并在 nginx.conf 中添加了以下注释,保存并执行了 runApp()。
location /rstudio/ {
rewrite ^/rstudio/(.*)$ / break;
proxy_pass http://localhost:7983;
proxy_redirect http://localhost:7983/ $scheme://$host/rstudio/;
}
这似乎没有解决问题。我想我可能需要在 nginx.conf 文件中添加一些额外的东西或将其放在特定目录中。请协助。谢谢!
编辑 nginx.conf 脚本如下:
location /rstudio/ {
rewrite ^/rstudio/(.*)$ / 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";
}
我想你忘记了将 WebSockets 与 Nginx 结合使用所需的这三行精彩代码:
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
将它们添加到您的 location /rstudio/ {}
此外,默认情况下,如果没有 activity,连接将在 30 秒后关闭。 解决方法:
proxy_read_timeout 999999999;
WebSockets 需要 HTTP 1.1 协议才能工作。这 3 行使浏览器使用 HTTP 1.1 连接到网站,并将您的服务器代理为 HTTP 1.1。
如果您想了解更多信息,here 的博客 post 可能会有所帮助。
在同一个问题上苦苦挣扎了几天后,我发现问题出在防火墙阻止了 websocket 工作。我安装了 Pandas 防病毒软件并启用了防火墙。当我关闭它并使用 Windows 防火墙并打开那个传入端口时它开始工作。
希望对您有所帮助