应用程序如何与服务器通信并立即反映更新?

时间:2015-04-20 13:19:00

标签: android web-services

嗨这只是为了知识。我将尽可能多地解释我的问题是什么。 通常我每隔一段时间就调用一次异步服务,例如服务器部分的更新一旦发生变化就不会反映出来。例如,whatsapp几乎立即反映了更新。例如,当用户键入时,它向另一个用户显示他正在键入。 简而言之,他们使用什么协议以及如何使用它。

谢谢。

2 个答案:

答案 0 :(得分:1)

您可以实施Google Cloud Messaging(GCM)服务,如GCM网站所述:

  

适用于Android的Google Cloud Messaging(GCM)是一项允许您使用的服务   将数据从您的服务器发送到用户的Android设备,   并且还要从同一连接上的设备接收消息......

通过这种方式,您可以从一个客户端通知状态更改,然后后端将propper消息发送到所需的客户端,最后这些客户端应用程序更新状态。

https://developer.android.com/google/gcm/index.html

答案 1 :(得分:1)

  

他们使用什么协议?

应用程序,如Whats app,G-talk,facebook等,他们使用XMPP协议进行IM服务。

什么是XMPP?

  

可扩展消息传递和在线协议(XMPP)是开放式的   使用可扩展标记进行实时通信的技术   语言(XML)作为交换信息的基本格式。在   本质上,XMPP提供了一种从一个XML发送小块XML的方法   实体到另一个接近实时

根据specifications的最新版本,XMPP提供以下服务

  
      
  • 频道加密[RFC3920]
  •   
  • 身份验证[RFC3920]
  •   
  • Presence [RFC3921]
  •   
  • 联系人列表[RFC3921]
  •   
  • 一对一消息传递[RFC3920]
  •   
  • 多方消息传递[XEP-0045]
  •   
  • 通知[XEP-0060]
  •   
  • 服务发现[XEP-0030]
  •   
  • 能力广告[XEP-0115]
  •   
  • 结构化数据表格[XEP-0004]
  •   
  • 工作流程管理[XEP-0050]
  •   
  • 点对点媒体会话[XEP-0166]
  •   

这是XMPP中可用的核心服务

以下是可以使用XMPP的一些应用程序

  
      
  • 即时消息
  •   
  • GROUPCHAT
  •   
  • 游戏
  •   
  • 系统控制
  •   
  • 地理位置
  •   
  • 中间件和云计算
  •   
  • 数据联合
  •   
  • IP语音(VoIP)
  •   
  • 身份服务
  •   

与HTTP一样,XMPP也需要服务器 - 客户端实现

以下是一些流行的XMPP服务器

  
      
  • Ejabberd
  •   
  • 的Openfire
  •   
  • 韵律
  •   
  • Tigase
  •   

您可以在link

上找到有关xmpp服务器的更多信息

不同平台拥有不同的XMPP客户端库,您可以获得有关此link

的更多信息

如果你想为Android实现XMPP客户端,那么你可以使用Smack 4.1,它是用java编写的开源XMPP客户端库。

我试图在这里列出XMPP的基本功能,但是如果你开始使用xmpp,那么有些东西需要学习,可以对XMPP提出任何疑问,我会尽力而为。

谢谢

  

注::         对于仍在使用aSmack的用户,应该升级为Smack 4.1,因为aSmack已被弃用!!

  • aSmack Deprecation Notice
  • aSmack to Smack Upgrade guide