2011-12-18 3 views
1

Currenlty Я пытаюсь разработать простое приложение для чата для Android. Я хочу создать что-то, что работает как WhatsApp. Поскольку это должно быть в реальном времени, я думаю, что C2DM - лучший способ отправить уведомление, когда пользователь отправляет сообщение другому пользователю.C2DM Push chat application

Поскольку я прочитал, что C2DM построен только для уведомлений, а не для сообщений, я должен найти способ доставить эти сообщения этому другому контакту.

Теперь у меня есть сервер приложений, который может отправлять уведомления C2DM. Но какой лучший и самый энергосберегающий способ отправки и получения «текстовых сообщений»?

Я читал о опросе, но я не думаю, что это экономия энергии. Я прочитал кое-что о «XMPP», но как я могу объединить это с C2DM?

+0

Вы задумывались о стоимости C2DM ?? – the100rabh

+0

Если вы имеете в виду затраты на энергию? Да, потому что там уже открыто соединение C2DM, вы можете использовать это соединение. Я также видел разные презентации, в результате чего C2DM является наиболее энергосберегающим способом push notificatoins. – Sander

+0

Если мы должны использовать избирательный Проверить свежесть на стороне сервера If-Modified-Since => 304, если ничего нового в Опрос как можно реже ожидания энергопотреблению ~ 5-8 м Но в опросе, сети рисует 115-200 мА ~ 0,5 мА/ч за короткий промежуток времени (радио остается некоторое время) ~ 144 мАч/день с частотой опроса 5 мин ~ 10% от батареи! ~ 48 мАч/день с частотой опроса 15 мин – Sander

ответ

0
  1. Пользователь A отправляет сообщение пользователю B, то есть отправляет сообщение на ваш сервер приложений.
  2. Сервер приложений получает сообщение от A до B. Он отправляет уведомление C2DM в B, сообщающее, что есть новые данные.
  3. Пользователь B получает C2DM уведомление о новых данных, подключается к серверу приложений и получает сообщение от пользователя А.

Этот механизм только проталкивает данные, нет опроса.

+0

Спасибо, но каков наиболее энергоэффективный способ получить сообщение с сервера приложений? Думаю, с веб-поиском? – Sander

+0

Ну, это не тривиальный вопрос. Это делает HTTP-запрос каждый раз, когда пользователь имеет новые данные. Это, безусловно, более эффективно, чем опрос. Если вы спрашиваете о XMPP, я не знаю. Whatsapp использует XMPP, этот протокол предназначен для обмена в реальном времени, поэтому в целом он должен соответствовать вашим потребностям, поскольку именно это вы пытаетесь сделать. – aromero

+0

Да, WhatsApp использует XMPP, если я прав. Но как я могу комбинировать WhatsApp с XMPP? Потому что если XMPP в реальном времени, мне не нужно использовать C2DM, если я прав? Или мне нужно проверить сервер XMPP, если есть новые сообщения. Каков наилучший вариант для этого? – Sander