Używam node.js na porcie 8082 i Apache na porcie 80.Losowe Bad Request 400 błędy z Socket.io 1.0.6
wszystko działa poprawnie na chwilę i niż przeglądarce zacząć pojawiać komunikaty o błędach "400 złe żądanie", błędy CORS.
Serwer ustawia nagłówki CORS. Jak widać, używam również adaptera Redis.
var io = require('socket.io').listen(8082);
io.adapter(redis({ host: '127.0.0.1', port: 6379 }));
io.set('origins', 'domain.com:*');
Nie mogę powiedzieć, dlaczego czasami wszystko działa dobrze, czasami nie. Błąd występuje zawsze, gdy Socket.io spróbuje dokonać aktualizacji z pulowania na websocket.
Gdy korzystam z klienta od https://cdn.socket.io/socket.io-1.0.6.js, otrzymuję mniej błędów.
Kiedy używam lokalnego odwołania do pliku socket.io-1.0.6.js, błędy występują z większą częstotliwością. Nie można znaleźć wzorca błędu.
Po errosach restartuję serwer Node.js, wypróbuję kilka żądań, działa od dłuższego czasu, błędy. Czasami działa ponownie bez restartowania serwera.
Zapytanie nagłówki próbka próbka
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3
Cookie io=RjKzZ6Y1OTQeSEsPAAAL; SGM_DESENV=cb5ae798c2f6f5d3f38c6ed16a6e4696
Host 200.238.251.79:8082
Origin http://200.238.251.79
Referer http://200.238.251.79/maximiliano/sgp/admin/custodiacompartilhada/add
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:29.0) Gecko/20100101 Firefox/29.0
nagłówki odpowiedzi
Access-Control-Allow-Credentials true
Access-Control-Allow-Origin http://200.238.251.79
Connection keep-alive
Content-Length 101
Content-Type application/octet-stream
Date Fri, 25 Jul 2014 16:10:26 GMT
Set-Cookie io=9OYcCmU24IyzrAS3AAAM
komunikaty o błędach
NetworkError: 400 Bad Request - http://200.238.251.79:8082/socket.io/?EIO=2&transport=polling&t=1406304539856-2&sid=RjKzZ6Y1OTQeSEsPAAAL
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://200.238.251.79:8082/socket.io/?EIO=2&transport=polling&t=1406304539856-2&sid=RjKzZ6Y1OTQeSEsPAAAL This can be fixed by moving the resource to the same domain or enabling CORS.
Używasz NewRelic? – Eddie