繁体   English   中英

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

[英]How to implement Beluga or WhatsApp like messaging system in Android 2.1

我正在尝试在我的 android 应用程序中开发一个消息应用程序。 该消息将像whatsapp和beluga。 我搜索了一下,发现 C2DM Android 2.2 可以向设备发送推送通知。 但是,这在 Android 2.1 上不可用。 有人知道whatsapp 是如何发送2.1 设备的通知的吗?

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

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

在 2.1 之前的设备上,WhatsApp 可能会在后台保持与 XMPP 服务器的连接,但这对电池寿命来说并不是很好。

C2DM 现在被GCM(谷歌云消息传递)取代。 您可以使用它将通知传递到您的应用程序。 对于消息的交换,应该依赖于 xmpp (whatsapp)、mqtt(facebook messenger)、mtproto (telegram) 等协议。

如果您想熟悉 GCM。 试用appsrox 的本教程 -使用 Google Cloud Messaging (GCM) 创建即时消息应用程序

他们也使用 GCM 进行消息传递。 它不适合生产,但对于想要开发即时消息 android 应用程序的人来说,它是一个极好的资源。

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

  1. 每 X 秒轮询一次远程服务器并检查新通知(这是更昂贵的选择)。
  2. 运行后台服务,保持与远程服务器的连接,它将向我发送任何要接收的通知(有点像我自己的推送通知实现)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM