Задать вопрос
@jokkie

Android обмен данными с сервером, Socket или httpurlconnection?

Разрабатываю клиент-серверное приложение Android, в котором от сервера->клиенту данные будут передаваться редко, но их будет много, со стороны клиента будет передаваться немного данных, но передаваться они будут гораздо чаще (желательно раз в 5 сек, но можно увеличить до 10-15 сек), взаимодействие, в основном в мобильной сети, т.е. соединение не стабильное, может прерываться.
Нашел механизмы Socket и httpurlconnection, но как-то не нагуглил сравнения между ними, Socket, как я понимаю держите стабильное соединение, а httpurlconnection подключается "один раз" и для нормального обмена необходимо делать short или long polling, т.е. на первый взгляд лучше использовать Socket, но в сети я чаще вижу реализации с httpurlconnection.
Почему не используют socket-ы или я чего не понимаю в использовании socket-ов на Android?
  • Вопрос задан
  • 2203 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@retr0
Socket и HttpUrlConnection - уже давно устаревшие библиотеки. Google рекомендуют использовать OkHttp. Пример использования можете посмотреть тут
Ответ написан
Комментировать
@red-barbarian
ну во-первых нужно определиться с протоколом. будете ли вы делать свой протокол обмена клиент-сервер или возьмете http.
http это уже стандартный протокол со всеми вытекающими. и хорошим клиентом для андроида.
свой протокол - все ваши желания. но делаете сами.
кроме этого нужно учитывать что готовые клиенты http уже готовы для сжатых данных, для работы с REST. для cache. Для них уже сразу можно работать с Retrofitom & json (Gson), либо распарсить самому.
Конечно же для http уже готовые сервера. остается сделать только ответы-скрипты.
Кроме этого часто в какой-либо корпоративной сети админ запрещает все кроме mail & http.
Т.е. плюсов достаточно много.
Но у http это работа клиента с сервером по запросам. те. клиент послал запрос - получил ответ. Сервер просто так не посылает свои данные клиенту.
Если для вас это важно то http не подойдет.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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