Обмен данными между Android клиентом и Java сервером

Подскажите, как сейчас, в 2020-м, правильно построить коммуникацию между клиентом и сервером? Я использую java.net.Socket, но как по мне, это не лучшее решение.


Ответы (2 шт):

Автор решения: Ramiz

однозначного рецепта нет.

все зависит от требований, вот приблизительный путеводитель:

  • если скорость не критична, структуры и объемы не большие лучше всего подойдет старый добрый REST
  • если модель слишком сложная и/или запросы сильно варьируются (настолько, что пере-/недо-грузка становится ощутимой), то можно посмотреть на GraphQL
  • если же скорость критична, то имеет смысл рассмотреть gRPC
  • если стандартные протоколы не подходят, можно попробовать и свой, на основе WebSocket, ну или если нужен полный контроль, то на TCP или UDP, если конечно у Вас есть столько времени на разработку и отладку :)
→ Ссылка
Автор решения: Victor VosMottor

По разному можно. Есть много способов от самых простых до самых сложных. Можно воспользоваться уже готовым протоколом. Например:

  • MQTT
  • AMQP
  • WebSockets
  • и т.д.

Можно пойти по сложному пути — написать свой протокол. Список протоколов по OSI . Есть такие вещи типа P2P. Так что исчерпывающий ответ дать нельзя, вот только общие идеи. Есть куда копать ;)

→ Ссылка