@prizrak39

Как выбрать правильную реализацию для чата Android?

Добрый день.

Появилась необходимость в рамках приложения организовать функциональность отправки личных сообщений между пользователями. Возник вопрос каким способом лучше всего это сделать?
1. Первый вариант, который сразу пришел в голову с помощью REST. С определенной периодичностью отправляем запрос на сервер (например каждый 5-10 секунд) для отслеживания новых сообщений. Это будет работать например если всего ну скажем 1000 пользователей, а если больше(то крах)? Также получается что даже в фоне приложение будет всегда работать, что наверное не правильно.
2. Второй вариант реализация на сокетах. Не знаю насколько это правильно и логично.
3. Третий вариант использование XMPP. Если я правильно понял то в качестве сервера можно использовать уже имеющиеся реализации. Клиента писать самому. Или взять что-то готовое типа ЭТОГО. Пока не могу ценить плюсы и минусы данного решения.

Возможно есть еще варианты реализации, прошу подсказать.
  • Вопрос задан
  • 470 просмотров
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Самому писать чат - долго и дорого. Ваши первые два варианта нежизнеспособны.
XMPP годный вариант, но писать клиент самому - опять же, дорого и долго. Мы когда-то встраивали xabber. Свои функции он выполнял.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Multigame
1) Ну точнее проблема будет не напрямую в количестве пользователей, а в количестве сообщений. А точнее это будет несколько несовременно, ведь новые сообщения будут подгружаться только пачкой и только раз в "5-10 секунд"
Если общий чат не планируется, а только личные сообщения, то в принципе это приемлемый вариант. Хотя и да учитывая обработку всех httpшных заголовков (точнее то что каждый запрос/отправка будет отделным реквестом) нагрузка будет большей чем на тех же сокетах.
2 & 3) Вопрос в том, насколько вы планируете кастомизировать какими-то фитчами, которые не вписываются в приведенную платформу или протокол. Недостатки xmpp в принципе даже в википедии описаны достаточно хорошо.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы