私はブラウザとノードサーバー間の通信にWebSocketsを使用するwebappを作っています。クライアントが巨大なwebsocketパケットを送信しないようにするにはどうすればよいですか?
デバッグコンソール(F12)を開くと、ソケットインスタンスにアクセスして書き込むことができます。例えば
、コンソールを開き、このような何かを書くことから誰かを停止しているものsocket.send('packetname', 'data')
?
socket.send(new Array(99999));
サーバーに送信されるすべてこのデータは圧倒的なことができ、それはそこに着く時間によって、帯域幅が既に使用されて、それがすでに処理されています。もちろん検証はありますが、その時点ではそれは遅すぎ、リソースはすでに処理に費やされています。
また、配列の長さを確認することはできません。なぜなら、誰かが最初の要素が巨大な配列であるか、実際には何かの配列を送信できるからです。バイトサイズを計算する方法はないと思うので、サイズを確認するためにデータをストリング化することが最善の方法だと思います(これは非常に遅いです)。
私のすべてのパケットは非常に小さいです。私は、特定のサイズ以上のパケットがサーバーに送信されないようにする方法を探しています。これは可能ですか?
あなたはソケットを他のものの中に入れてプライベートにすることができます –
[Socket.io](http://socket.io/)を使用すると['socket.io-stream'](https: /www.npmjs.com/package/socket.io-stream)は、酷い接続を切断するために使用できます。 – tadman
@tadman:私はプリムスを使用していませんsocket.io –