저는 브라우저와 노드 서버 간의 통신을 위해 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 : primus not socket.io를 사용하고 있습니다. –