У меня есть проект nodejs, который порождает несколько процессов, которые взаимодействуют с сокетом io (процесс отправляет данные и получает их).
Иногда во время разработки функций другие программисты могут совершать ошибки, из-за которых мой код инфраструктуры сокетов отправляет большие сообщения, размер которых превышает X (например, более 500 МБ).
Я ищу способ отлавливать такие случаи и регистрировать их, я также не хочу, чтобы такой конкретный запрос не удался.
Сейчас поведение таково, что все сокетные соединения терпят неудачу (а не только конкретные большие сообщения), и я не смог даже поймать дело, чтобы понять, что это причина.
Прямо сейчас я ограничиваю размер сообщения с помощью конфигурации "maxHttpBufferSize":
Socket.IO о нем здесь сказано - «сколько байтов или символов может быть в сообщении до закрытия сеанса (чтобы избежать DoS).»
Но я не могу уловить какую-либо ошибку, когда этот размер превышает, и все соединение разрывается, что очень плохо для меня.
Я действительно думал о том, чтобы попытаться добавить несколько проверок к моей отправке данных через код сокета, чтобы проверить, велик ли размер сообщения, но сериализация данных для этой проверки будет очень дорого стоить с точки зрения производительности, и сокет .io код должен уже делать это перед отправкой данных, поэтому я не хочу, чтобы это происходило дважды.
Лучшее решение, которое я надеюсь найти, - это поддерживаемый socket.io способ справиться с этим, если есть другой способ, который является дорогостоящим и может быть хорошим.
Примечание: я работаю с сокетом io 2.0.4.
Если есть исправление только в более высокой версии, это также приемлемо.