Как защитить Websocket based сайт от DDoS атак?
Если сильно обощать ддосы бывают двух видов -
1 атака на канал вам просто забивают трафиком под завязку сетевой интерфейс вашего сервера и он не может общатся с клиентами, это на стороне самого сервера никак не решается - только внешние решения типа клаудфлары.
2 атака на приложение и сопутствующий софт, заваливают медленными коннтектами вебсервер пока не заокнчится лимит, ищут тяжолые дейсвия с базой на вашем сайте(поиск например) чтобы потом кучей запросов нагрузить базу и сервис начнет тупить, и так далее. Основные приемы борьбы - знать паттерн обычного пользвателя, и настроить необходимые лимиты чуть выше чем надо обычному юзеру) в фаерволе или фронтенд проксе (например haproxy)
1. Блокировка IP это базовый функционал файрвола, но при DDOS руками это бесполезно ставить
2. DDOS огранизовывают обычно или с помощью amplify traffic либо же slowloris attack. Есть еще UDF flood. так что websocket или же что там у вас не важно. Если у вас нет возможности горизонтально масштабироваться чтобы отбить первую волну  вредного трафика то вам ничто не поможет, хотя решения есть, не спорю. Если у вас один сервачок то просто забудьте об этой проблеме - у вас не хватит ресурсов с этим справиться
3. ограничение по числу сообщений называется тротлингом и реализуется очень просто, но он работает после инструментов анти-ддоса и не имеет к этому никакого отношения.
4. ограничивать пропускную способность у вас не получится для разных клиентов, а в целом если то вы просто ляжете от своих кривых рук