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