Ответ 1
Простой механизм чата будет иметь две основные функции
-
Отправить сообщение серверу (с информацией о получателе)
-
Получить сообщение с сервера (назначенное для моего имени пользователя)
Первый шаг прост, мы можем создать веб-службу, которая примет сообщение с дополнительной информацией о получателях. Мы можем создать его с использованием любого языка на стороне сервера.
Шаг 2, который выбирает сообщение с сервера, может быть выполнен с использованием двух методов: вытащите сообщение (используя опрос) с сервера или нажмите сообщение с сервера на Android-телефон
-
Опрос: при этом устройство Android будет продолжать доступ к серверу через несколько секунд, чтобы проверить, доступно ли сообщение для пользователя. Это снова может быть реализовано с помощью простой задачи async на стороне клиента, которая будет продолжать звонить в веб-службу через 2-3 секунды. Это нормально использовать, если мы планируем включить чат только в том случае, если пользователь обращается к приложению (никаких уведомлений, таких как gmail или facebook), чтобы мы могли убить службу опроса, когда он не используется (в противном случае он будет потреблять ресурсы).
-
Push-уведомления: лучший вариант - использовать push-уведомления. Android обеспечивает Google cloud messaging или GCM (http://developer.android.com/google/gcm/index.html), что поможет легко добиться толчка от сервера. В противном случае вы можете попробовать сторонний API, такой как urbanairhip или pushwoosh, в зависимости от вашего требования. Push-уведомления помогут пользователю получать сообщения, даже если он не использует приложение.
Таким образом, в двух словах, веб-сервис для приема сообщений и механизм уведомления push должен быть достаточным для реализации службы чата в android.
Немного о UrbanAirship
Я использовал UA в одном из моих проектов для push-уведомлений, поскольку мне нужно было поддерживать как iOS, так и Android. Если вы просто хотите поддержать Android GCM, также может быть хорошим вариантом.
Возвращаясь к UA, проверьте это для примера кода и использования: https://docs.urbanairship.com/display/DOCS/Home
Как это работает, просто, когда кто-то устанавливает приложение и подключается к Интернету, приложение регистрируется в службе UA. Для каждого установленного приложения указан уникальный код (это время, когда вы можете записывать имя пользователя и уникальный код и хранить где-нибудь в своей БД). Следующий UA предоставляет API, с помощью которого вы можете нажимать сообщение назначенным получателям (получателям), используя уникальные коды, доступные с UA. Эти сообщения могут быть получены приложением android и использованы в соответствии с требованием. Даже если приложение не работает, мы можем показать уведомление так же, как когда мы получим электронное письмо или сообщение