Страница 1 из 1

Клиенты на Android, сервер на Java. Как реализовать?

Добавлено: 13 апр 2016, 06:51
cebephb1y
Нужно реализовать задачу Сервер-КлиентЫ. Сервер принимает запрос от клиента(клиентов), возвращает ему(им, каждому свое, т.е. он сервер должен иметь возможность узнавать, какой из клиентов к нему обратился, и посылать сообщения только ему),. Так же сервер может сам инициировать передачу данных клиенту(клиентам). Как можно решить такую задачу? Говорят сокеты использовать на андроиде - это энергозатратное решение. Какие есть "правильные" способы решения этой задачи?

Re: Клиенты на Android, сервер на Java. Как реализовать?

Добавлено: 13 апр 2016, 08:12
math64
Зато сокеты есть и в обычной Java, и в Android. Если выделить общий код сервера и клиента, можно сэкономить на программировании - если задача не критичная по экономии ресурсов.

Re: Клиенты на Android, сервер на Java. Как реализовать?

Добавлено: 13 апр 2016, 12:28
Mikhail_dev
math64 писал(а):Зато сокеты есть и в обычной Java, и в Android. Если выделить общий код сервера и клиента, можно сэкономить на программировании - если задача не критичная по экономии ресурсов.
HttpClient тоже как бы есть и там и там. А сокетом держать соединение... И батарее сразу придёт конец.

Надо либо GCM использовать, либо делать свой keep alive. Первый вариант предпочтительнее.

Re: Клиенты на Android, сервер на Java. Как реализовать?

Добавлено: 13 апр 2016, 14:57
cebephb1y
math64 писал(а):Зато сокеты есть и в обычной Java, и в Android. Если выделить общий код сервера и клиента, можно сэкономить на программировании - если задача не критичная по экономии ресурсов.
нужно изначально делать правильно ;)
Mikhail_dev писал(а):
math64 писал(а):Зато сокеты есть и в обычной Java, и в Android. Если выделить общий код сервера и клиента, можно сэкономить на программировании - если задача не критичная по экономии ресурсов.
HttpClient тоже как бы есть и там и там. А сокетом держать соединение... И батарее сразу придёт конец.

Надо либо GCM использовать, либо делать свой keep alive. Первый вариант предпочтительнее.
подскажите где можно посмотреть пример с GCM

Re: Клиенты на Android, сервер на Java. Как реализовать?

Добавлено: 15 апр 2016, 12:13
Sergey777
Mikhail_dev писал(а):
math64 писал(а):Зато сокеты есть и в обычной Java, и в Android. Если выделить общий код сервера и клиента, можно сэкономить на программировании - если задача не критичная по экономии ресурсов.
HttpClient тоже как бы есть и там и там. А сокетом держать соединение... И батарее сразу придёт конец.

Надо либо GCM использовать, либо делать свой keep alive. Первый вариант предпочтительнее.
Здравствуйте! Подскажите пожалуйста а правда ли, что отправлять уведомления в GCM можно только до 4Кб с полезной нагрузкой? Получается, что этот способ подходит только лишь для push-уведомлений. У меня схожая задача с автором этой темы. Мне нужно изменять контент приложения без использования стандартного средства обновления приложения в Google Play. Всё это нужно реализовать по одной причине - заказчик хочет сам управлять контентом в готовом уже выложенном приложении. Естественно, что-то изменять в самом проекте готового приложения не выйдет (как бы мне этого не хотелось) по причине того что это сложно для заказчика. Хотелось бы использовать какой-то более менее удобный вариант, что-то на подобия сервиса parse.com (который к сожалению прекращает свою работу в 2017 году). Посоветуйте, пожалуйста, какие могут быть решения данной задачи без написания Api (серверной части) к своему приложению где-то на WEB-сервере?

Re: Клиенты на Android, сервер на Java. Как реализовать?

Добавлено: 20 апр 2016, 18:31
0800009
А на стороне сервера что на может принимать запросы кроме
Socket и datagramsocket ?

Re: Клиенты на Android, сервер на Java. Как реализовать?

Добавлено: 30 апр 2016, 09:04
0800009
Mikhail_dev писал(а):
math64 писал(а):Зато сокеты есть и в обычной Java, и в Android. Если выделить общий код сервера и клиента, можно сэкономить на программировании - если задача не критичная по экономии ресурсов.
HttpClient тоже как бы есть и там и там. А сокетом держать соединение... И батарее сразу придёт конец.

Надо либо GCM использовать, либо делать свой keep alive. Первый вариант предпочтительнее.
А если просто держать в приложении "сервер"сокет открытым в режиме ожидания не "держа соединение" как таковое,
будет ли это так же губительно для батареи.
Или просто наличие самого открытого сокета нагружает батарею?
И отличается ли дейтаграмм сокет от TCP сокета по нагрузке на батарею?
Спасибо