我想在我的android应用程序中开发消息应用程序。该消息将像whatsapp和beluga一样。我搜索了它,发现C2DM Android 2.2可以将推送通知发送到设备。但是,这在Android 2.1上不可用。任何人都知道whatsapp如何发送2.1设备的通知?如何在Android 2.1中实现Beluga或WhatsApp类似的消息系统
回答
对于Android:Whatsapp建立在C2DM之上,当应用程序打开时,它会打开与其服务的XMPP连接以立即传递消息。他们也可能使用MQTT作为协议来减少电池使用量。基本上就是这样。
编辑:我学到了更多,Facebook在他们的消息应用程序中使用MQTT。 Whatsapp建立在XMPP上,并带有自己的扩展。他们的服务器端运行在ejabbard之上(erlang中的XMPP实现)。 http://www.ejabberd.im/
在2.1之前的设备上,WhatsApp可能会在后台保持与XMPP服务器之间的连接,但这对于电池寿命并不是很好。
我不知道在whatsapp中使用了什么确切的技术。但是,如果我要实施通知,其中不支持来自操作系统的推送通知,我可以做两件事:
- 每隔X秒轮询一次远程服务器并检查新通知(这是比较昂贵的选择)。
- 运行一个后台服务,维护与远程服务器的连接,这将向我发送任何要接收的通知(有点像我自己的推送通知实现)。
您的第二种方法是否也适用于离线通知? – angelokh 2011-04-29 06:49:38
你能详细说明'离线通知'的含义吗? – thekindofme 2011-04-29 06:52:54
我认为在服务器端需要做一些事情,比如当目标设备关闭时将状态和通知存储到存储设备中。 – angelokh 2011-05-01 21:55:34
现在将C2DM替换为GCM (google cloud messaging)。您可以使用它将通知发送到您的应用程序。对于消息交换,应该依赖xmpp(whatsapp),mqtt(facebook messenger),mtproto(telegram)等协议。
如果您希望熟悉GCM。试试这个教程由appsrox - Create an Instant Messaging app using Google Cloud Messaging (GCM)
他们也使用GCM的消息传递以及。它不适合生产,但它对于想要开发即时消息android应用程序的人来说是一个很好的资源。
- 1. 如何在Android中创建类似WhatsApp的聊天消息块?
- 2. 如何在GAE上建模聊天/消息系统(如whatsapp,LINE)
- 3. Yii的消息系统实现
- 4. 如何在php/mysql中实现类似SO的标记系统?
- 5. 如何在用户之间实现消息传递系统?
- 6. 如何实现基于Spring MVC的消息传递系统
- 7. 如何实现类似于linux系统时钟的c时钟
- 8. 如何实现类似Twitter的消息外观?
- 9. 获取WhatsApp消息
- 10. 通过WhatsApp在特定的联系人发送消息android
- 11. Android系统如何实现内部intentservice
- 12. 如何在Android中发送类似Skype的IM消息?
- 13. 你如何在android中提示用户类似toast的消息?
- 14. 实现类似twitter的跟随者系统的好方法?
- 15. 使用FCM实现聊天消息通知,如WhatsApp
- 16. 如何在android中实现类似于css中的on_hover?
- 17. 实现会话风格的私人消息系统
- 18. CodeIgniter消息系统
- 19. CakePHP消息系统
- 20. 如何在android上实现类似“Printer Discover”的服务发现?
- 21. 实施后端IP消息系统Twilio
- 22. 如何在.NET中实现类似StackOverFlow的投票系统(UP/DOWN)或(THUMP UP/DOWN)?
- 23. 在Windows Phone中,如何实现类似android的tabview?
- 24. 实现类似于视图的星系
- 25. 如何分享WhatsApp的采用Android系统的意向
- 26. 如何实现类似于Android的消息处理程序,但是在普通Java中
- 27. 目标C中的消息系统是否依赖于内核消息系统?
- 28. 编程发现Android系统的信息
- 29. 实现信号R在android系统
- 30. 实现电子邮件在android系统
你如何确定他们在使用C2MD,请你详细说明一下,因为C2MD也使用XMPP协议,那么为什么WhatsApp不会使用他们自己的服务而不是使用C2MD? – Hunt 2014-06-04 05:54:51