即时通讯之xmpp协议简析

最近的项目用到了阿里百川即时通信云。按照官网的Demo以及官方开发文档集成和开发的过程还是相当的顺利的。因此,今天在这里我并不打算赘述开发过程,而是简单谈一下自己对于即时通信的原理的理解。

目前IM有四种协议:即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM)、针对即时通讯和空间平衡扩充的进程开始协议SIP(SIMPLE)以及XMPP。PRIM与XMPP、SIMPLE类似,但已经不再使用了。

在这里,我们来深入的了解一下xmpp协议。

 

首先,我们下来理解一下xmpp协议是什么?

Xmpp是一种基于xml的协议,即用TCP协议来传递xml数据流。

 

那么问题来了,为什么事TCP而不是HTTP协议呢?

个人理解:即时通讯,顾名思义信息的交换是实时的,因此需要在通讯双方之间建立一条长连接,而HTTP协议是一种无状态的连接,数据一次交换完之后连接就断开了。这显然与即时通讯的思想史相悖的。

 

接下来,我们聊一下xmpp的基本网络结构是什么样的。

Xmpp定义了三个角色:客户端、服务器、网关。前面两个自然不用多说,读者应该能明白。网关的主要作用是实现和其他通讯协议或者通信系统的交互而设计的(与计算机网络中的网关的概念是不一样的)。Xmpp基本的网络形式是单个客户端通过TCP\Ip协议连接到但服务器,然后在上面传输xml数据。所以,xmpp实际传输的xml形式的通讯指令。

 

Xmpp的工作原理:

所有从一个xmpp client到另一个xmpp client的数据都要通过xml Server。即client 连接到server,server通过本地目录的证书对其进行认证。Client告知server另一个Client的目标地址,server返回对应Client的当前状态,并查找Client并建立连接,之后Client之间就可以交互了。

 

题外话:既然说到了xml,我想到了最近在面试时遇到的一个比较有意思的问题,在这里贴出来,大家一起讨论着玩。

题目大概是这样的,有几十个GB的xml数据,需要将其解析出来,并将相应节点的数据存储到数据库中,请你设计一种思路,使得效率最高。(强调效率)

有想法的读者在评论区畅所欲言吧,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值