Мобильные платформы
GameDev.ru / Мобильные платформы / Форум / периодически отваливаются j2me-клиенты

периодически отваливаются j2me-клиенты

Поделиться
andrew_jr20Пользовательwww9 июля 201212:01#0
Добрый день
Имеется сервер (асинхронные сокеты, C#, создан на основе этого примера), и клиенты на j2me (midp 2.0, cldc 1.0, на основе клиент-серверного примера NetworkingDemo).
Чтобы отслеживать, живы ли клиенты, завёл список на сервере, и раз в 20 секунд заставил клиентов посылать некую строку, увеличивая время последней активности в списке, сам же сервер раз в 10 секунд проверяет список, не превысило ли время последней активности минуту - и если минуту клиент неактивен (батарея села, или ещё какая-проблема, при которой клиент отключен, но на сервере исключение не выскочило), клиент удаляется из списка и сокет принудительно закрывается.
Но довольно часто бывает так, что клиент жив, сеть работает, но вышеозначенные пинги от него перестают идти - сервер его рубит, и на клиенте идёт обработка ошибки 10054 (что опять-таки подтверждает нормально функционирующую сеть). Перестают уходить пинги хоть сразу же после авторизации клиента, хоть через 5 минут, а могут только через полтора часа.
До ввода этой системы пингов была немного другая система: сам сервер по своему списку сокетов просто отсылал некую строку, чтобы (в случае долгого периода неактивности на телефоне) поддерживать соединение и не быть отключенным оператором. Но даже тогда с той же непонятной периодичностью клиенты отваливались.
Уже не знаю, что можно сделать, чтобы при наличии постоянного соединения с интернетом клиенты так же стабильно были подключены к серверу.. Заранее спасибо за помощь, если нужна какая-то дополнительная информация - обязательно напишу.

/ Форум / Мобильные платформы / Общее

Тема в архиве.

2001—2017 © GameDev.ru — Разработка игр