2016-05-24 6 views
0

私はウェブサイトから私がnodejs KOAを使用して構築したバックエンドサーバーに通信を送信するためにWebSocketを使用しています。私はwebsocketsライブラリ1.4.xを使用しており、AWSのelasticbeanstalkでホストされています。私が持っている問題は、1秒間に多くのポーリング要求があり、AWS Elasticbeanstalkが自分のクラスタをDegradedとして分類していることです。ウェブサイトの使用率は非常に低く、実際にサイトに何かを押し付けているわけではありません。私はWebSocketを使ってレポートデータを送り返しています。代わりにPOSTまたはAJAXを使用するように変更する必要があります。これは私の問題を解決します。しかし、なぜ私が何度もポーリングリクエストを見ている理由を説明できる人がいれば、私は疑問に思っていました。ロードされたサイトですべてのクライアントのために、それは毎秒ポーリング要求を送信します。Websocketのポーリングリクエストを減らすことができます

2016-05-24T03:33:37.025471Z 0.000037 0.001259 0.000019 400 400 3 41 "POST http://xxx.elb.amazonaws.com:80/socket.io/?EIO=3&transport=polling&t=LJWqo-g&sid=2p4uqRwRpgAGe9MYGEFw HTTP/1.1" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36" - - 
2016-05-24T03:33:37.058664Z 0.000046 0.000801 0.000021 400 400 0 41 "GET http://xxx.elb.amazonaws.com:80/socket.io/?EIO=3&transport=websocket&sid=VGMrEcNWfe3V52xIBrsr HTTP/1.1" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36" - - 
2016-05-24T03:33:37.068053Z 0.000026 0.001814 0.000017 400 400 3 41 "POST http://xxx.elb.amazonaws.com:80/socket.io/?EIO=3&transport=polling&t=LJWqq6w&sid=VGMrEcNWfe3V52xIBrsr HTTP/1.1" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36" - - 
2016-05-24T03:33:37.114333Z 0.000027 0.001408 0.000028 200 200 0 101 "GET http://xxx.elb.amazonaws.com:80/socket.io/?EIO=3&transport=polling&t=LJWqptG HTTP/1.1" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36" - - 
2016-05-24T03:33:37.204186Z 0.000049 0.000999 0.000018 400 400 0 41 "GET http://xxx.elb.amazonaws.com:80/socket.io/?EIO=3&transport=polling&t=LJWqpwy&sid=70GDwJbapBpe7xr0Brss HTTP/1.1" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36" - - 
2016-05-24T03:33:37.222283Z 0.000027 0.002033 0.000019 200 200 0 101 "GET http://xxx.elb.amazonaws.com:80/socket.io/?EIO=3&transport=polling&t=LJWqpdt HTTP/1.1" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36" - - 
2016-05-24T03:33:37.284256Z 0.00004 0.001299 0.00002 400 400 0 34 "GET http://xxx.elb.amazonaws.com:80/socket.io/?EIO=3&transport=websocket&sid=70GDwJbapBpe7xr0Brss HTTP/1.1" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36" - - 
2016-05-24T03:33:37.304609Z 0.000025 0.000778 0.000016 400 400 3 41 "POST http://xxx.elb.amazonaws.com:80/socket.io/?EIO=3&transport=polling&t=LJWqpyM&sid=70GDwJbapBpe7xr0Brss HTTP/1.1" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36" - - 
2016-05-24T03:33:37.334223Z 0.00003 0.001927 0.000021 200 200 0 5 "GET http://xxx.elb.amazonaws.com:80/socket.io/?EIO=3&transport=polling&t=LJWqpfN&sid=t4oUghKESf3iQDNIGEFx HTTP/1.1" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36" - - 
2016-05-24T03:33:37.412382Z 0.000025 0.001156 0.000027 400 400 0 41 "GET http://xxx.elb.amazonaws.com:80/socket.io/?EIO=3&transport=websocket&sid=t4oUghKESf3iQDNIGEFx HTTP/1.1" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36" - - 
2016-05-24T03:33:37.460320Z 0.000025 0.001016 0.000029 400 400 0 41 "GET http://xxx.elb.amazonaws.com:80/socket.io/?EIO=3&transport=polling&t=LJWqph5&sid=t4oUghKESf3iQDNIGEFx HTTP/1.1" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36" - - 
2016-05-24T03:33:37.562313Z 0.000061 0.002397 0.000026 200 200 3 2 "POST http://xxx.elb.amazonaws.com:80/socket.io/?EIO=3&transport=polling&t=LJWqpj7&sid=t4oUghKESf3iQDNIGEFx HTTP/1.1" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36" - - 
2016-05-24T03:33:37.878069Z 0.000057 0.001508 0.000019 200 200 0 101 "GET http://xxx.elb.amazonaws.com:80/socket.io/?EIO=3&transport=polling&t=LJWqqIm HTTP/1.1" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36" - - 
2016-05-24T03:33:37.978133Z 0.000043 0.001061 0.000033 400 400 0 41 "GET http://xxx.elb.amazonaws.com:80/socket.io/?EIO=3&transport=polling&t=LJWqqKp&sid=az8li1OVGN8CuKc7Brst HTTP/1.1" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.94 Safari/537.36" - - 

サーバー側のコードは次のとおりです。私が持っているクライアント上

var http = require('http'); 
var koa = require('koa'); 
var app = koa(); 

app.use(router.routes()) 
    .use(router.allowedMethods()); 

router.get('/', getHomepage); 
router.get('/:storeid', getHomepage); 

app.context.render = render({ 
    root: path.join(__dirname, 'views'), 
    autoescape: true, 
    cache: 'memory', // disable, set to false 
    ext: 'html', 
// locals: locals, 
// filters: filters, 
// tags: tags, 
// extensions: extensions 
}); 

app.use(staticFolder('./public')); 

var server = http.createServer(app.callback()); 
var io = require('socket.io')(server); 
var storeId=0; 

io.on('connection', function (socket) 
{ 
    socket.on('submit', function(data) 
    { 
     // Do something 
    } 
)); 

<script type="text/javascript" src="socket.io/socket.io.js"></script> 
<script type="text/javascript"> var socket = new io('http://xxx.elb.amazonaws.com'); </script> 
+1

WebSocketを使用していません。 Webソケットを使用していた場合は、ポーリングしません。 WSのポイントはあなたが投票する必要がないからです。あなたの "WebSockets Library 1.4.x"はWebSocketを使用していません。しかし、 "WebSockets Library 1.4.x"が意味するものはわかりません。どのように "ウェブソケット"を設定しているかについての詳細情報を含めてください。 – Aron

+0

クライアントがsocket.io(プレーンなwebSocketではない)を使用しているように見えます。何らかの理由でクライアントがwebSocketトランスポートではなく 'ポーリング 'トランスポートのみを要求しています。接続している関連するクライアントコードを表示してください。サーバーライブラリがsocket.io接続をサポートしていない可能性もあります。 socket.ioはwebSocketと同じではありません。クライアント(あなたがいる)からsocket.io接続を要求している場合、WebSocket接続を取得するには、サーバー上でsocket.ioをサポートしている必要があります。 – jfriend00

+0

私は "socket.io"を使用しています: "1.4.x"、 – user3508995

答えて

0

はそれを考え出しでる。 Amazon ELBはウェブソケットをサポートしていません!

関連する問題