Dimusikus
@Dimusikus
Любитель

Как сделать привязку сервера с клиентом в случае сбоев в соединении, чтобы у клиента не оборвался процесс игры?

Здравствуйте!

Пишу мултиплеерную игру(клиент сервер). Socket.io + Node.JS.
Задался я вот таким вопросом, как более грамотно сделать привязку сервера с клиентом в случае сбоев в соединении, чтобы у клиента не оборвался процесс игры? Сначала думал делать привязку к socket.id но он при реконнекте меняется на другой. Потом подумал сделать привязку по логину клиента, но игра будет без регистрации а значит и без паролей, т.е. возможно наличие в игре игроков с одинаковыми логинами (именами). Подумав ещё, решил сделать при событии connect клиента, выдавать ему уникальный ID, но ведь при разрывах связи срабатывает reconnect и вызывается опять событие connect при котором опять же ему будет выдан сервером другой ID отличный от предыдущего и мы опять теряем клиента. Подскажите пожалуйста как обычно делают спецы что бы грамотно реализовать удержание клиента с сервером при кратковременных(до 10сек) разрывах связи и при событии reconnect?
  • Вопрос задан
  • 304 просмотра
Пригласить эксперта
Ответы на вопрос 2
MarcusAurelius
@MarcusAurelius Куратор тега Node.js
автор Impress Application Server для Node.js
Генерируйте свой собственный ID на сервере, например в форме GUID (тогда не нужно будет париться даже об уникальности), передавайте его на клиента и сохраняйте а cookie и в localstorage, при разрыве и восстановлении передавайте ID на сервер и восстанавливайте сессию.
Ответ написан
zoonman
@zoonman
⋆⋆⋆⋆⋆
сделать
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы