Количество соединений нужно считать самому, и инкрементировать его уже после обмена минимальными необходимыми данными с клиентом. Так же, чтобы сокеты не висели, нужно периодически слать через соединение так называемый heartbeat (или ping), если его долго нет, то соединение считать погибшим. Не вижу ни малейшего смысла в socket.io, вообще, просто нативные WebSockets в браузере прекрасно работают: var ws = new WebSocket('ws://127.0.0.1:80/api/connect.ws'); и поехали, все специфицировано и отлично работает уже везде. Со стороны сервера библиотеку
https://www.npmjs.com/package/websocket или посмотрите на комплексное решение
habrahabr.ru/post/247543