Лучшая технология для клиент-серверного приложения Android - PullRequest
2 голосов
/ 29 сентября 2011

Мне нужно сделать для школы приложение, которое работает на Android.На самом деле есть два приложения, клиент и сервер.Сервер работает на ПК, а клиенты - на устройствах Android.Я хочу знать, что является лучшей технологией для этого.Я знаю, что RMI и WebServices не реализованы в Android, так что каковы альтернативы (помимо того, что общаются с сокетами традиционным способом).Одна из альтернатив, на которую я не смотрел, - это REST, но мне нужно будет иметь возможность уведомить клиента, как только другой клиент что-то сделает, аналогично базовым играм, когда игрок A уведомляет игрока B о том, что он сделал свой ход.Как я уже сказал, сокеты делают свое дело, но они немного низкоуровневы по сравнению с RMI и WebServices и хотят использовать их только в качестве крайней меры.

Ответы [ 2 ]

2 голосов
/ 29 сентября 2011

Для пошаговой игры вы можете взглянуть на XMPP (например, Smack ), который традиционно используется для обмена мгновенными сообщениями.Также было бы интересно создать игру, используя C2DM , которая используется для push-уведомлений.

Вы также можете посмотреть на потоковую передачу HTTP, которая по сути является бесконечным ответом HTTP, в котором подается ход игрокаinto.

В качестве альтернативы вы можете взглянуть на двоичные системы обмена сообщениями, которые больше подходят для игр в реальном времени, но все еще применимы, такие как RabbitMQ (что не так с гладкой пошаговой игрой?).

2 голосов
/ 29 сентября 2011

Будьте проще.Используйте REST и проводите опрос клиентов на наличие обновлений.

Кроме того, если вы попадаете в точку, где вам нужно масштабировать, это решение на самом деле довольно легко масштабируется, поскольку вашим серверам не нужно поддерживать соединения,Поскольку между конкретным сервером и клиентом нет общего состояния (существует общий сервер между приложением и клиентом), вы можете легко добавить дополнительные серверы для обработки опроса и поместить их за балансировщиком нагрузки.

Вы также можете добавить в кеширование, чтобы опрос просто получал точно такой же ответ без повторного вычисления ответа.После этого вы сможете использовать внутренние серверы состояний игры для обновления кешей при изменении состояния игры.Это позволит вам проводить гораздо более частые опросы и при этом иметь очень гибкую масштабируемую архитектуру.

...