Używam modułu ws
i chciałbym ograniczyć ilość danych przesyłanych przez klienta przez websocket do 1MB. Zapobiegnie to wysyłaniu przez złośliwego użytkownika ogromnych ilości danych (w kategoriach GB), co powoduje, że serwerowi brakuje pamięci, co spowoduje błędy odmowy usługi dla każdego normalnego użytkownika.
Na przykład, przykład ekspresowe pozwala określić maksymalny rozmiar żądania POST tak:
jak ograniczyć ilość danych przesyłanych przez klienta za pomocą websocket?
bodyParser.json({limit:'1Mb'})
Jak zrobić coś podobnego z modułem ws
?
Próbowałem:
var ws = require('ws').Server
var wsserver = new ws({port:8080, limit:'1Mb'})
Ale to oczywiście nie działa.
Chcę, aby transmisja danych została przerwana (po przekroczeniu 1 MB) i aby połączenie websocket zostało zamknięte. Jak mogę to zrobić?
Musi istnieć sposób ograniczenia ramek danych pochodzących od klienta ...
chyba nikt jeszcze nie wie ... https://github.com/websockets/ws/issues/513 ... https://github.com/websockets/ws/issues?utf8=%E2%9C% 93 & q = limit – rafaelcastrocouto
Jakiej biblioteki "ws' używasz? Jeśli w dokumentacji dla używanej biblioteki webSocket nie ma odpowiedzi, odpowiedź można ustalić tylko po zapoznaniu się z kodem biblioteki, aby sprawdzić, czy ma jakąkolwiek zdolność ograniczania lub zrozumienia, gdzie kod mógł zostać zmieniony. aby dodać taki limit. To brzmi jak rozsądna rzecz, której chce. – jfriend00
@ jfriend00 https://www.npmjs.com/package/ws tutaj jest. Najwyraźniej w dokumentacji nie ma właściwości argumentu opcji, który by to zrobił. Być może istnieje metoda instancji wsServer, która może ustawić limit. Sprawdzę to. –