与XMPP相关试题一

前端之家收集整理的这篇文章主要介绍了与XMPP相关试题一前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

如看文字比较累,课程中间有配套视频,文字部分和视频内容一致

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

定义:

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

  • 及时通讯:发送一则消息,对方账号马上即时接收到消息。中间没有出现延时。
    底层使用 socket实现/java对tcp/ip协议的实现

    @H_404_3@
  • 什么是XMPP配套视频

    @H_404_3@

基本网络结构

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

  • 举个例子看看所谓的XML(标准通用标记语言的子集)流是什么样子的? @H_404_3@

客户端:

<?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>
  • 以文档的观点来看,客户端或服务器发送的所有XML文本连缀在一起,从到构成了一个完整的XML文档。其中的stream标签就是所谓的XML Stream。在与中间的那些…这样的XML元素就是所谓的XML Stanza(XML节)。 XMPP核心协议通信的基本模式就是先建立一个stream,然后协商一堆安全之类的东西,中间通信过程就是客户端发送XML Stanza,一个接一个的。服务器根据客户端发送的信息以及程序的逻辑,发送XML Stanza给客户端。但是这个过程并不是一问一答的,
    任何时候都有可能从一方发信给另外一方。通信的最后阶段是关闭流,关闭TCP/IP连接。@H_404_3@

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

  • 2.1 Presence
    用于确定用户的状态。消息结构举例如下(每个 XML 的 node 还会有很多其他 attribute,为了简单起见这里省略,下同): @H_404_3@
<presence from="abc@jabber.org/contact" to="def@jabber.org/contact"> 
    <status>online</status> 
</presence>
  • 2.2 Message
    用于在两个用户之间发送消息。消息结构举例如下: @H_404_3@
<message from="abc@jabber.org/contact" to="def@jabber.org/contact" type=“chat”> 
    <body>hello</body> 
</message>
  • 2.3 IQ
    信息/请求,是一个请求-响应机制,管理XMPP服务器上两个用户的转换,允许他们通过相应的XML格式进行查询和响应。 @H_404_3@
<iq from="abc@jabber.org/contact" id=“id11” type=“result”> 
</iq>

及时聊天的展示形式

面向连接:三次握手

  • 欢迎关注微信公众号,长期推荐技术文章和技术视频@H_404_3@

猜你在找的XML相关文章