Как внедрить систему обмена сообщениями в стиле Beluga или WhatsApp в Android 2.1 - PullRequest
8 голосов
/ 27 апреля 2011

Я пытаюсь разработать приложение для сообщений в моем приложении для Android.Сообщение будет похоже на WhatsApp и Beluga.Я прогуглил его и обнаружил, что C2DM Android 2.2 может отправлять push-уведомления на устройствоТем не менее, это не доступно на Android 2.1.Кто-нибудь знает, как WhatsApp отправляет уведомления для устройств 2.1?

Ответы [ 3 ]

13 голосов
/ 19 декабря 2011

Для Android: Whatsapp основан на C2DM, и когда приложение открывается, оно открывает XMPP-соединение с их службой для мгновенной доставки сообщений.Они также могут использовать MQTT в качестве протокола для минимизации использования батареи.Вот и все.

Редактировать: я узнал больше, Facebook использует MQTT в своем приложении для обмена сообщениями.Whatsapp построен на XMPP со своими собственными расширениями.Их серверная часть работает поверх ejabbard (реализация XMPP в erlang).http://www.ejabberd.im/

На устройствах до версии 2.1 WhatsApp, вероятно, сохраняет соединение открытым для своих серверов XMPP в фоновом режиме, но это не очень хорошо для времени автономной работы.

2 голосов
/ 02 октября 2014

C2DM заменено на GCM (облачные сообщения Google) сейчас.Вы можете использовать его для доставки уведомлений в ваше приложение.Для обмена сообщениями следует использовать протоколы, такие как xmpp (whatsapp), mqtt (мессенджер facebook), mtproto (телеграмма) и т. Д.

, если вы хотите ознакомиться с GCM.попробуйте этот учебник от appsrox - Создайте приложение для обмена мгновенными сообщениями, используя Google Cloud Messaging (GCM)

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

0 голосов
/ 28 апреля 2011

Я не знаю, какая именно технология используется в WhatsApp.Однако, если я хочу реализовать уведомления, когда нет поддержки push-уведомлений от ОС, я могу сделать две вещи:

  1. Опрашивать удаленный сервер каждые X секунд и проверять наличие новых уведомлений (этоболее дорогой выбор).
  2. Запустите фоновую службу, поддерживайте соединение с удаленным сервером, который будет доставлять мне любые уведомления, которые должны быть получены (вроде как моя реализация push-уведомлений).
...