前面两张主要讲基础部分。XMPP与Mina有部分抄写于互联网的其他大事
XMPP概述
XMPP: The Extensible Messaging and Presence Protocol
中文全称:可扩展通讯和表示协议
Xmpp是一种类似于http的通讯传输协议,它是一个“包装”/“解包”的过程。
XMPP适合新项目的优势:
l 无需投入成本制定协议
l 易于扩展
l 可迅速完成原型
l 适合各种容量系统,从100用户在线的系统到100万以上在线用户。
l 可扩展至 Web/Flash IM, Mobile IM 等各种场合,基本都有开源实现或Library。
l 发展比较成熟稳定
基本网络结构
XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。
功能
传输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行符的方式发送(比如MSN)。而XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。这不但使得解析容易了,人也容易阅读了,方便了开发和查错。而XMPP的核心部分就是一个在网络上分片段发送XML的流协议。这个流协议是XMPP的即时通讯指令的传递基础,也是一个非常重要的可以被进一步利用的网络基础协议。所以可以说,XMPP用TCP传的是XML流。
XML流和XML节
XML流的定义:
一个XML流是一个容器,包含了两个实体之间通过网络交换的XML元素。一个XML流是由一个XML打开标签 <stream> (包含适当的属性和名字空间声明)