Функциональность мобильного чата с использованием push-уведомлений, когда нужно что-то нажимать? - PullRequest
4 голосов
/ 08 февраля 2012

(следующий вопрос касается мобильных платформ в целом (iPhone, Android, Blackberry))

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

Мне нужен способ уведомить пользователя о новом сообщении, когда он / она в данный момент не просматривает экран чата (то есть приложение либо не находится вна переднем плане или они находятся в другом разделе приложения (не на экране чата).

Очевидно, что push-уведомления здесь были бы идеальными, но я не уверен, когда мне следует отправлять push-уведомления.

Как клиент, отправляющий сообщение, узнает, просматривает ли другой экран экран чата? Должен ли я просто отправлять сообщение нажатием на каждое отдельное сообщение, и получающее устройство должно решить, нужно ли ему открывать окно или экран?что-то в строке уведомлений?

Кажется, что излишне нажимать каждый раз при отправке сообщения. Как это обычно делается?

Любые идеи вообще будут высоко оценены.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 08 февраля 2012

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

  • Пользователь A инициирует сообщение для пользователя B
  • Сообщение отправляется на сервер.
  • Сервер определяет, что этосообщение для пользователя B.
  • Сервер инициирует push-уведомление и доставляет сообщение пользователю B.

Теперь, почему вам нужно нажимать каждый сообщение чата?Потому что единственный способ для ваших пользователей получать уведомления - это опрос вашего сервера для новых сообщений.Постоянный опрос (с любой скоростью, которую вы определили) крайне плохо в мобильной сфере из-за ограниченных ресурсов (батарея, сеть и т. Д.)

в push-уведомлении В этом случае ваше приложение должно обрабатывать логику того, уведомлен ли пользователь о получении нового сообщения.Это означает, что когда пользователь B получает новое сообщение от пользователя A, вы сами решаете, хотите ли вы уведомить B (т.е. вывести свое приложение на передний план) или нет.В любом случае вы хотите использовать push-уведомления вместо опроса.

В аналогичном примечании пользователю B не обязательно знать приложение этого пользователя A (Ваше приложение) находится в фоновом режиме, поэтому вам необходимо соответствующим образом обработать эту логику (в вашем приложении).

0 голосов
/ 08 февраля 2012

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

Push-уведомление не требуется, если приложение все еще работает, даже если пользователь просматривает другие экраны приложения. Однако важно, чтобы поток обрабатывал соединение с сервером, который «терпеливо» ждал транзакций с сервера.

Один вопрос, какой протокол вы используете для обмена сообщениями? .. Это протокол OMA IMPS?

...