@twintwin1003

Ложные сокеты при подключении к серверу на Node.js?

Пишу игровой сервер на Node.js, использую модули express и socket.io.
Возникла проблема: при быстром открытии и закрытии вкладок (вкладки с адресом, который прослушивает сервер) модуль socket.io иногда не успевает грамотно делать disconnect. То есть, вдоволь побаловавшись с вкладками, я имею 1 активное подключение (1 вкладка в браузере), но на сервере это число может быть другим.
Общее кол-во подключений узнаю с помощью io.engine.clientsCount;
Socket.io 1.3.2
Выслушаю любые варианты и предложения :)
  • Вопрос задан
  • 2966 просмотров
Решения вопроса 1
MarcusAurelius
@MarcusAurelius Куратор тега Node.js
автор Impress Application Server для Node.js
Количество соединений нужно считать самому, и инкрементировать его уже после обмена минимальными необходимыми данными с клиентом. Так же, чтобы сокеты не висели, нужно периодически слать через соединение так называемый 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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы