Есть сервер на Node JS с вебсокетами. Использую библиотеку ws и там нет встроенной функции ограничения количества запросов.
Пытался сделать ограничение через Nginx, но веб сокеты же отправляют всего 1 HTTP запрос,а затем уже вступает протокол WebSocket, поэтому через него не ограничить.
Последним вариантом осталась идея для каждого подключения делать переменную, которую инкрементировать каждый запрос и каждый N секунд у всех её обнулять, но может есть какие-то варианты получше или более низкоуровневые?
Попробуй просто делать wss.close(), где wss - экземпляр WebSocketServer, когда количество коннектов достигнет лимита. Потом, если какой из коннектов закрывается, создавать новый WebSocketServer.
либо, если есть лимит, в обработчике события wss.on('connection' ...) сразу закрывать вновь созданный коннект.