Клиенты на Android, сервер на Java. Как реализовать?
Клиенты на Android, сервер на Java. Как реализовать?
Нужно реализовать задачу Сервер-КлиентЫ. Сервер принимает запрос от клиента(клиентов), возвращает ему(им, каждому свое, т.е. он сервер должен иметь возможность узнавать, какой из клиентов к нему обратился, и посылать сообщения только ему),. Так же сервер может сам инициировать передачу данных клиенту(клиентам). Как можно решить такую задачу? Говорят сокеты использовать на андроиде - это энергозатратное решение. Какие есть "правильные" способы решения этой задачи?
Re: Клиенты на Android, сервер на Java. Как реализовать?
Зато сокеты есть и в обычной Java, и в Android. Если выделить общий код сервера и клиента, можно сэкономить на программировании - если задача не критичная по экономии ресурсов.
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Клиенты на Android, сервер на Java. Как реализовать?
HttpClient тоже как бы есть и там и там. А сокетом держать соединение... И батарее сразу придёт конец.math64 писал(а):Зато сокеты есть и в обычной Java, и в Android. Если выделить общий код сервера и клиента, можно сэкономить на программировании - если задача не критичная по экономии ресурсов.
Надо либо GCM использовать, либо делать свой keep alive. Первый вариант предпочтительнее.
Re: Клиенты на Android, сервер на Java. Как реализовать?
нужно изначально делать правильноmath64 писал(а):Зато сокеты есть и в обычной Java, и в Android. Если выделить общий код сервера и клиента, можно сэкономить на программировании - если задача не критичная по экономии ресурсов.
подскажите где можно посмотреть пример с GCMMikhail_dev писал(а):HttpClient тоже как бы есть и там и там. А сокетом держать соединение... И батарее сразу придёт конец.math64 писал(а):Зато сокеты есть и в обычной Java, и в Android. Если выделить общий код сервера и клиента, можно сэкономить на программировании - если задача не критичная по экономии ресурсов.
Надо либо GCM использовать, либо делать свой keep alive. Первый вариант предпочтительнее.
Re: Клиенты на Android, сервер на Java. Как реализовать?
Здравствуйте! Подскажите пожалуйста а правда ли, что отправлять уведомления в GCM можно только до 4Кб с полезной нагрузкой? Получается, что этот способ подходит только лишь для push-уведомлений. У меня схожая задача с автором этой темы. Мне нужно изменять контент приложения без использования стандартного средства обновления приложения в Google Play. Всё это нужно реализовать по одной причине - заказчик хочет сам управлять контентом в готовом уже выложенном приложении. Естественно, что-то изменять в самом проекте готового приложения не выйдет (как бы мне этого не хотелось) по причине того что это сложно для заказчика. Хотелось бы использовать какой-то более менее удобный вариант, что-то на подобия сервиса parse.com (который к сожалению прекращает свою работу в 2017 году). Посоветуйте, пожалуйста, какие могут быть решения данной задачи без написания Api (серверной части) к своему приложению где-то на WEB-сервере?Mikhail_dev писал(а):HttpClient тоже как бы есть и там и там. А сокетом держать соединение... И батарее сразу придёт конец.math64 писал(а):Зато сокеты есть и в обычной Java, и в Android. Если выделить общий код сервера и клиента, можно сэкономить на программировании - если задача не критичная по экономии ресурсов.
Надо либо GCM использовать, либо делать свой keep alive. Первый вариант предпочтительнее.
Re: Клиенты на Android, сервер на Java. Как реализовать?
А на стороне сервера что на может принимать запросы кроме
Socket и datagramsocket ?
Socket и datagramsocket ?
Re: Клиенты на Android, сервер на Java. Как реализовать?
А если просто держать в приложении "сервер"сокет открытым в режиме ожидания не "держа соединение" как таковое,Mikhail_dev писал(а):HttpClient тоже как бы есть и там и там. А сокетом держать соединение... И батарее сразу придёт конец.math64 писал(а):Зато сокеты есть и в обычной Java, и в Android. Если выделить общий код сервера и клиента, можно сэкономить на программировании - если задача не критичная по экономии ресурсов.
Надо либо GCM использовать, либо делать свой keep alive. Первый вариант предпочтительнее.
будет ли это так же губительно для батареи.
Или просто наличие самого открытого сокета нагружает батарею?
И отличается ли дейтаграмм сокет от TCP сокета по нагрузке на батарею?
Спасибо