我是前端Web应用程序开发的新手.我收到的WebSocket连接失败如下:
WebSocket connection to 'ws://127.0.0.1:7983/websocket/' failed: Error in connection establishment: net::ERR_EMPTY_RESPONSE
Run Code Online (Sandbox Code Playgroud)
我查看了这个WebSocket错误,发现转到了以下页面.
Shiny&RStudio Server:"WebSocket握手期间出错:意外的响应代码:404"
使用nginx,nodejs和socket.io,WebSocket连接失败
然后我在我的Windows 7机器上下载了nginx,并在nginx.conf中添加了以下注释,保存并执行了runApp().
location /rstudio/ {
rewrite ^/rstudio/(.*)$ /$1 break;
proxy_pass http://localhost:7983;
proxy_redirect http://localhost:7983/ $scheme://$host/rstudio/;
}
Run Code Online (Sandbox Code Playgroud)
这似乎没有解决问题.我想我可能需要在nginx.conf文件中添加一些额外的东西,或者将它放在特定的目录中.请协助.谢谢!
编辑nginx.conf脚本如下:
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";
}
Run Code Online (Sandbox Code Playgroud) 我有这个错误请求.

德语中的最后一句是指"Firefox无法连接到位于ws:// ......."的服务器.
服务器不会是我认为的问题.
因为这里是nginx配置,因为我觉得有问题!
server {
server_name example.org;
listen 80 default_server;
root /var/www/web;
location / # for symfony2
{
try_files $uri @rewriteapp;
}
location @rewriteapp # for symfony2
{
rewrite ^(.*)$ /app.php/$1 last;
}
location ~ ^/app\.php(/|$)
{
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param HTTPS off;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ ^/socket
{
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
}
Run Code Online (Sandbox Code Playgroud)
nginx版本:nginx/1.4.7
app.js(那就是服务器!)
var …Run Code Online (Sandbox Code Playgroud) 在我的服务器上运行nginx(nginx/1.1.19)上的socket.io时出错
WebSocket握手期间出错:'Connection'标头值不是'Upgrade':keep-alive
我的网站的conf文件是:
server{
listen 80;
server_name lalala.com;
access_log /home/hao/sites/reactjsweekly/accesss.log;
error_log /home/hao/sites/reactjsweekly/error.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:3002/;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Run Code Online (Sandbox Code Playgroud)
后端的socket.io:
var server = http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
var io = require('socket.io').listen(server);
io.sockets.on('connection', function (socket) {
socket.emit('info', {data: "lala"});
});
});
Run Code Online (Sandbox Code Playgroud)
任何人遇到同样的问题之前???