如何在Android 2.1中实现Beluga或WhatsApp之类的消息传递系统

时间:2011-04-27 09:17:40

标签: java android mobile push-notification

我正在尝试在我的Android应用中开发一个消息应用。消息将像whatsapp和beluga。我用谷歌搜索它,发现C2DM Android 2.2可以将推送通知发送到设备。但是,这在Android 2.1上不可用。有谁知道whatsapp如何发送2.1设备的通知?

3 个答案:

答案 0 :(得分:13)

对于Android:Whatsapp基于C2DM构建,当应用程序打开时,它会打开与其服务的XMPP连接,以立即传递消息。他们还可能使用MQTT作为协议来最小化电池使用。基本上就是这样。

编辑:我了解到更多,Facebook在他们的消息应用程序中使用MQTT。 Whatsapp是基于XMPP构建的,具有自己的扩展。他们的服务器端运行在ejabbard之上(erlang中的XMPP实现)。 http://www.ejabberd.im/

在2.1之前的设备上,WhatsApp可能会在后台保持与其XMPP服务器的连接,但这对电池续航时间并不是很好。

答案 1 :(得分:2)

C2DM现在由GCM (google cloud messaging)取代。您可以使用它将通知发送到您的应用。对于消息交换,应该依赖xmpp(whatsapp),mqtt(facebook messenger),mtproto(电报)等协议。

如果您希望熟悉GCM。通过appsrox试用本教程 - Create an Instant Messaging app using Google Cloud Messaging (GCM)

他们也在使用GCM进行邮件传递。它不适合制作,但对于想要开发即时通讯安卓应用程序的人来说,它是一个很好的资源。

答案 2 :(得分:0)

我不知道在whatsapp中使用了什么确切的技术。但是,如果我要实现不支持来自操作系统的推送通知的通知,我可以做两件事:

  1. 每隔X秒轮询一个远程服务器并检查新通知(这是更昂贵的选择)。
  2. 运行后台服务,维护与远程服务器的连接,这将为我提供任何要接收的通知(类似于我自己的推送通知实现)。