Android面试经验面试Android学习

android面试题-阐述一下对XMPP协议理解以及优缺点?

2017-04-18  本文已影响1474人  小怪兽打葫芦娃

Android程序员面试宝典

自定义控件

联网

工具

数据库

源码分析相关面试题

Activity相关面试题

Service相关面试题

与XMPP相关面试题

与性能优化相关面试题

与登录相关面试题

与开发相关面试题

与人事相关面试题

本文配套视频

3-简单阐述一下对XMPP协议理解以及优缺点?

定义:

XMPP(可扩展消息处理现场协议)的前身是Jabber,由一个开源组织产生的即时通信协议,基于可扩展标记语言(XML)的一种协议,是由IETF(国际互联网小组)通过的网络标准。

基本网络结构

XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),
MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。

客户端:

<?xmlversion='1.0'?>
<stream:stream
to='example_com'
xmlns='jabber:client'
xmlns:stream='http_etherx_jabber_org/streams'
version='1.0'>  

服务器:

<?xmlversion='1.0'?>
<stream:stream
from='example_com'
id='someid'
xmlns='jabber:client'
xmlns:stream='http_etherx_jabber_org/streams'
version='1.0'>

其他通信
客户端:

<messagefrom='juliet_example_com'
to='romeo_example_net'
xml:lang='zh-cn'>
    <body>Art thou not Romeo, and a Montague?</body>
</message>

服务器:

<message from='romeo_example_net'
to='juliet_example_com'
xml:lang='zh-cn'>
    <body>Neither, fair saint, if either thee dislike.</body>
</message>

客户端:

</stream:stream>

服务器:

</stream:stream>

XMPP 的消息格式。
XMPP 协议的所有消息都是 XML 格式的,在 XMPP 中定义了 3 个顶层消息:

<presence from="abc@jabber.org/contact"  to="def@jabber.org/contact"> 
    <status>online</status> 
</presence>
<message from="abc@jabber.org/contact" to="def@jabber.org/contact" type=“chat”> 
    <body>hello</body> 
</message>
<iq from="abc@jabber.org/contact" id=“id11” type=“result”> 
</iq>

及时聊天的展示形式

面向连接:三次握手

微信公众号名称:Android干货程序员

上一篇 下一篇

猜你喜欢

热点阅读