概述
服务器:Openfire
客户端:Spark
为服务器与客户端提供一套可扩展的API:Smark
简述TCP/IP协议族
首先简单说一下TCP/IP协议族,此协议族通常采用4层,分别是:
-
应用层:解决必须通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的问题。如:超文本传输协议(HTTP)、简单邮件传送协议(SMTP)、域名系统(DNS)、文本传送协议(FTP)、远程终端协议(TELNET)等等。
-
传输层:把IP协议中的分组由网络层交付给目的主机的应用进程。无连接的用户数据报协议(UDP)、面向连接的传输控制协议(TCP)。
-
互连网络层:网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网际协议(IP),与IP协议配套使用的还有地址解析协议(ARP)、网际控制报文协议(ICMP)、网际组管理协议(IGMP)。
-
网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如: Ethernet 802.3)来传送数据。
应用层的很多协议都是基于客户服务器方式。客户是服务请求方,服务器是服务提供方。XMPP协议属于应用层。
简述XMPP
-
XMPP指可扩展通讯和表示协议,很类似于HTTP协议。
-
XMPP定义了三个角色,分别是客户端、服务器、网关,通信能够在这三者的任意两个之间双向发生。
分属于两个不同的服务器端的客户端之间通信不能经过其他的Server。
如果外部消息网路客户端想与XMPP客户端通信,外部消息网络客户端需先连接外部消息网络,外部消息网络和XMPP客户端之间的通信通过网关连接。 -
XMPP实体一般为客户端、服务器,而每个XMPP实体都需要一个地址,称之为JabberID(JID)。每个实体无需记住IP地址。每个JID通常包含一个映射到一个完全合格的域名(FQDN),所以在安装XMPP服务器软件的时候,需要选择一个域名部署,该域名映射到一个或多个机器,而机器名又映射到IP地址。
-
当然QQ、微信等等不是基于XMPP开发的,他们有自己的协议。
1、关于通讯:
XMPP以XML流进行通讯,而XML流是由XML节组成的。所以一个XML节通常可以认为是通讯的基本单位。
2、核心特征:
出席订阅(这是典型的双向),出席通知(如可用、离开和不可用)和名册(包括名册组)。