ho questa richiesta di errore.nginx come webserver incl. socket.io e node.js/ws: // 400 Bad Request
L'ultima frase in tedesco significa "Firefox cant connettersi al server che si trova in ws: // .......".
Il server non sarebbe il problema che penso.
Perché questa è la configurazione di nginx, perché penso che ci sia il problema!
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;
}
versione nginx: nginx/1.4.7
app.js
var express = require('express'),
io = require('socket.io').listen(server),
server = require('http').createServer(app),
bodyParser = require('body-parser');
var app = express();
server.listen(8080);
app.use(bodyParser.json());
app.post('/', function(request, response)
{
response.send('OK');
io.emit('MessageForAll', request.body);
});
io.on('connection', function (socket){});
console.log('Server running on port 8080.');
xhr polling funziona, penso. Guarda lo screenshot qui sopra. Il problema è che ws: // non funziona. Se il sistema che utilizza il polling xhr potrei usare le richieste ajax al server in background, usando invece un server extra. Ma grazie per la tua risposta. – PatrickB
@PatrickB Ho cambiato la risposta.Prova su Google Chrome versione 37.0.2062.94 (64-bit) e Mozilla Firefox versione 32.0. –
Wtf ... non funziona per me :(Non so perché il server non invia 101 protocolli di commutazione ... – PatrickB