Реализация один на один и групповой чат в android

Я разрабатываю приложение для Android, в котором мне нужно реализовать обмен сообщениями в чате. Мне нужен один на один или групповой чат.

Но я понятия не имею, как начать. Пожалуйста, помогите мне с этим. Любая помощь будет оценена.


person Community    schedule 07.01.2013    source источник


Ответы (2)


Простой механизм чата будет иметь 2 основные функции.

  1. Отправить сообщение на сервер (с информацией о получателе)

  2. Получить сообщение с сервера (назначено для моего имени пользователя)

Первый шаг прост: мы можем создать веб-сервис, который будет принимать сообщение с дополнительной информацией о получателях. Мы можем создать его, используя любой серверный язык.

Шаг 2, то есть получение сообщения с сервера, может быть выполнено с использованием двух методов: вытащить сообщение (используя опрос) с сервера или отправить сообщение с сервера на телефон Android.

  1. Опрос: в этом случае устройство Android будет продолжать обращаться к серверу через несколько секунд, чтобы проверить, доступно ли сообщение для пользователя. Это снова может быть реализовано с помощью простой асинхронной задачи на стороне клиента, которая будет продолжать вызывать веб-службу, скажем, через 2-3 секунды. Это хорошо использовать, если мы планируем включить чат только тогда, когда пользователь получает доступ к приложению (без уведомлений, таких как gmail или facebook), чтобы мы могли отключить службу опроса, когда она не используется (в противном случае она будет потреблять ресурсы).

  2. 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 и использованы в соответствии с требованиями. Даже если приложение не запущено, мы можем показать уведомление, как если бы мы получили электронное письмо или сообщение.

person Kamal    schedule 07.01.2013
comment
Камаль очень хорошо объяснил. Можете ли вы уточнить свой шаг 2 с помощью кода или ссылок? - person Aditya1510; 07.01.2013
comment
Спасибо, Камаль.. Не могли бы вы пролить свет на push-сообщения, как реализовать урбанизацию.. - person ; 07.01.2013
comment
Привет, то, что ты объяснил, действительно полезно, Камаль. Просто есть одно сомнение, я надеюсь, вы сможете решить его, ответив. Насколько я знаю, UA отправляет push-уведомления для всех устройств, на которых установлено это приложение. Но в чате один на один push-уведомление должно быть отправлено только одному конкретному упомянутому пользователю. Как этого добиться. Если кто-то может ответить на мой вопрос, это будет действительно полезно для меня. заранее спасибо - person newBie; 22.10.2013
comment
@Kamal Я использую FCM для уведомлений, когда приложение не используется, но что, если он ведет беседу один на один с кем-то или идет групповой чат? Предпочтительно ли использовать только уведомление FCM, или мне нужно реализовать что-то еще для этого? Так может происходить огромное количество разговоров. Пожалуйста, предложите.. - person Ari; 27.10.2016

Вы можете использовать существующую платформу, например Scringo. Он дает вам чат один на один, а также групповой чат (как клиент, так и сервер), а также службу push-уведомлений.

person hungary54    schedule 29.04.2013
comment
Ссылка битая, не могли бы вы обновить ее? - person Phalgun; 12.10.2014