Обмен данными между Android клиентом и Java сервером
Подскажите, как сейчас, в 2020-м, правильно построить коммуникацию между клиентом и сервером? Я использую java.net.Socket, но как по мне, это не лучшее решение.
Ответы (2 шт):
Автор решения: Ramiz
→ Ссылка
однозначного рецепта нет.
все зависит от требований, вот приблизительный путеводитель:
- если скорость не критична, структуры и объемы не большие лучше всего подойдет старый добрый REST
- если модель слишком сложная и/или запросы сильно варьируются (настолько, что пере-/недо-грузка становится ощутимой), то можно посмотреть на GraphQL
- если же скорость критична, то имеет смысл рассмотреть gRPC
- если стандартные протоколы не подходят, можно попробовать и свой, на основе WebSocket, ну или если нужен полный контроль, то на TCP или UDP, если конечно у Вас есть столько времени на разработку и отладку :)
Автор решения: Victor VosMottor
→ Ссылка
По разному можно. Есть много способов от самых простых до самых сложных. Можно воспользоваться уже готовым протоколом. Например:
- MQTT
- AMQP
- WebSockets
- и т.д.
Можно пойти по сложному пути — написать свой протокол. Список протоколов по OSI . Есть такие вещи типа P2P. Так что исчерпывающий ответ дать нельзя, вот только общие идеи. Есть куда копать ;)