Разрыв в сети, пока открыто соединение, - штатное состояние в tcp/ip, совершенно нормально открыть ssh подключение к серверу, вытащить провод из роутера, через десяток другой минут вставить - и все будет работать даже ошибки не выскочит (пока не попробуете послать пакет во время дисконекта).
Именно для этого придумали различные таймауты, а socket.io сам еще и пинги отправляет периодически
https://socket.io/docs/v3/client-api/index.html
тюньте под вашу задачу timeout, reconnectionDelay, reconnectionDelayMax