Какой протокол обмена данными между сервером и сервером лучше всего использовать в Android и iOS? - PullRequest
10 голосов
/ 25 ноября 2010

У нас есть серверное приложение (реализовано на Java), которое предоставит некоторые данные для наших мобильных приложений. Приложения будут созданы для Android и iOS.

Какой протокол / библиотека является лучшим для этой цели? Издержки протокола должны быть как можно меньше.

Спасибо.

Редактировать: Это должен быть сценарий запроса-> ответа. Потерянные данные не принимаются. Ответ может содержать длинный список данных, поэтому требуется меньше накладных расходов.

Клиент должен запросить данные (указанный ключ и некоторые определенные параметры), например, msgstr "дать мне весь файл из папки x с расширением y". Сервер отвечает списком.

Первой идеей было использование XMLRPC, но сгенерированные ответы слишком велики.

Ответы [ 3 ]

14 голосов
/ 25 ноября 2010

Для большинства приложений HTTP (S) - лучший протокол для использования. Накладные расходы (то есть заголовки) довольно малы, передача может быть взломана, соединение может быть защищено (через SSL). Также порты 80 (HTTP) и 443 (HTTPS) будут открыты в 99% случаев. Другие порты не являются - например, некоторые операторы блокируют все другие порты, если вы не платите дополнительно.


Что касается реализации, я предлагаю RESTful веб-сервис с использованием формата JSON . JSON хорошо стандартизирован, имеет небольшие накладные расходы, и у вас есть хорошие библиотеки для работы с ним на любом языке (посмотрите org.json, который входит в комплект поставки Android, но может быть загружен как самостоятельный и для других приложений). Проверьте этот вопрос тоже:

3 голосов
/ 09 марта 2013

Используйте анализатор Джексона или анализатор Gson вместо анализатора JSON.

1. Джексон в 2 раза быстрее, чем JSON, и подходит для анализа сложных и чрезвычайно больших jsons.1006 * 2. Gson быстрее, чем JSON.

0 голосов
/ 22 августа 2014

В My Opinion вы должны использовать веб-сервисы REST / SOAP, основанные на документно-ориентированных структурах. Это будет полезно в Большом ответе.

Вы также можете объединить Apache SOLR для этой цели это используется для индексации больших наборов данных, и даже намного быстрее, и также включено REST, вы можете индексировать свои данные в ядрах SOLR и затем создавать REST-вызовы из Client, т.е. IOS, Android, PHP и т. Д., Поэтому документы уже будут обработаны, и вам просто нужно добавить фильтры и другие необходимые элементы на клиенте.

Дайте мне знать, если вам нужна дополнительная помощь по этому вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...