Я бы попросил игроков разрешить вам «анонимные данные об использовании», как это делают многие приложения, периодически загружать отладочную информацию из своих сеансов обратно к вам.Вот как вы разбираетесь в подобных ситуациях.
Оттуда, что вам понадобится, когда произойдет отключение, будет довольно подробный журнал.Когда происходит отключение, перехватите любое исключение (и не забудьте также записать причину с помощью вызова на .getCause()
- сделать столько же вызовов на .getCause()
, скольконеобходимо до тех пор, пока вы не войдете полностью в исходную причину), а также любые соответствующие данные, необходимые для сопоставления журнала клиента с журналами на стороне сервера.Скорее всего, вам понадобится информация, такая как идентификаторы сеанса, игровые идентификаторы, временные метки и т. Д. Просто подумайте: «Какая информация, по-моему, мне понадобится для устранения этой проблемы, если предположить, что я получил представление об обеих сторонах соединения?это то, что вы в конечном итоге получите, попросив пользователей загружать данные об использовании и отладке.
Оттуда вы сможете выяснить, по крайней мере, несколько ситуаций, когда вы контролируете их - то есть, где выможет изменить ваш клиент / серверный код, чтобы облегчить некоторые проблемы.В некоторых случаях, когда проблема заключается либо в конфигурации клиента, либо в неисправном оборудовании (или, возможно, в части оборудования между ними, которой вы не контролируете), вам придется полагаться на надежное повторное подключение.
Выникогда не сократит количество разрывов соединения до нуля, но эта информация, после того как вы увидите достаточно случаев, должна помочь вам снизить вероятность возникновения разрывов соединения в ситуациях, которые находятся вне вашего контроля, и в этот момент ваша способность формировать сеть в конечном итоге будетконец, и вы будете настолько близки к «лучшему сценарию» с надежностью сети, насколько это возможно.