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

嗨这只是为了知识.我将尽可能多地解释我的问题是什么.

通常我每隔一段时间就调用一次异步服务,例如服务器部分的更新一旦发生变化就不会反映出来.例如,whatsapp几乎立即反映了更新.例如,当用户键入时,它向另一个用户显示他正在键入.

简而言之,他们使用什么协议以及如何使用它.

谢谢.

最佳答案

What protocols do they use?

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

什么是XMPP?

The Extensible Messaging and Presence Protocol (XMPP) is an open
technology for real-time communication, using the Extensible Markup
Language (XML) as the base format for exchanging information. In
essence, XMPP provides a way to send small pieces of XML from one
entity to another in close to real time

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

  • Channel encryption [RFC3920]
  • Authentication [RFC3920]
  • Presence [RFC3921]
  • Contact lists [RFC3921]
  • One-to-one messaging [RFC3920]
  • Multi-party messaging [XEP-0045]
  • Notifications [XEP-0060]
  • Service discovery [XEP-0030]
  • Capabilities advertisement [XEP-0115]
  • Structured data forms [XEP-0004]
  • Workflow management [XEP-0050]
  • Peer-to-peer media sessions [XEP-0166]

这是XMPP中提供的核心服务

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

  • Instant messaging
  • Groupchat
  • Gaming
  • Systems control
  • Geolocation
  • Middleware and cloud computing
  • Data syndication
  • Voice over IP (VoIP)
  • Identity services

像HTTP XMPP也需要服务器 – 客户端实现

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

  • Ejabberd
  • Openfire
  • Prosody
  • Tigase

您可以在此link上找到有关xmpp服务器的更多信息

不同的平台有不同的XMPP客户端库,您可以在这个link上获得更多信息

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

我试图在这里列出XMPP的基本功能,但是如果你开始使用xmpp,那么就有很多东西需要学习,可以随意询问有关XMPP的任何疑问我会尽力而为.

谢谢

Note::
for the user who are still using aSmack should Upgrade to Smack 4.1 as aSmack has been deprecated!!

> aSmack弃用Notice
> aSmack到Smack升级guide

点赞