介绍XMPP以前,先来看看GTalk。html
GTalk是Google推出的IM(Instant Messaging,即时通信)软件,相似于QQ和MSN。android
从技术角度来讲,GTalk与QQ和MSN的差别是使用了不一样的通信协议,QQ使用了本身的私有协议(未公开),MSN也使用了本身的私有协议。而GTalk使用了XMPP(Extensible Messageing and Presence Protocol,可扩展消息与存在协议),这种通信协议是一种公开的协议,有不少IM都使用了XMPP。sql
XMPP是一种基于XML的协议,它继承了XML的灵活性和可扩展性。所以,基于XMPP的应用也一样具备超强的灵活性和可扩展性。数据库
随着Internet技术的高速发展,即时通讯已经成为一种普遍使用的通讯方式。tomcat
1996年Mirabilis公司推出了世界上第一个即时通讯系统ICQ,不到10年间,即时通讯(Instant Messaging,简称IM)以发展成为了最流行的网络应用之一。安全
特别是近几年的迅速发展,即时通讯的功能日益丰富,再也不是个单纯的聊天工具,它已经发展成集交流、资讯、娱乐、音乐、电视、游戏、电子商务等为一体的综合化信息平台。服务器
目前国内外及时通讯软件IM(Instant Messenger )形势风起云涌,可谓战况空前,IM做为继Email和Web以后最主要的互联网基础应用之一,为商家必争之地。网络
国内的形势因为QQ的垄断性优点明显,表面稍显平静,实则暗流涌动。架构
目前来看,胖企鹅公司以压倒性优点占据了国内IM市场近八成份额,而且牢牢抓住低端市场,用户数量庞大,盈利丰厚。其余的IM 微软MSN(WLM)、网易POPO、新浪UC、TOM Skype、Google Gtalk等占有率较为惨烈,还有雅虎即时通、AIM、ICQ以及传闻中的Baidu IM和搜狐搜Q以及一些目前并不出名的如校内网的校内通,Lava-lava等等等等,凡在国内叫得上号的叫不上号的互联网企业,几乎没有不推IM的,甚 至连中国移动都力推飞信,但愿分得一杯羹。并发
然而这些即时通信不能实现互联互通,限制了用户的扩展。
虽然如今即时通讯软件有不少,可是它们之间不能互联互通也阻碍了及时通讯用户的继续扩展。
所以,在现阶段的各类即时通讯服务,没有统一的标准,没法实现互联互通,而XMPP(Extensible Message and presence Protocol)协议的出现,实现了整个及时通讯服务协议的互通。
有了这个协议以后,使用任何一个组织或者我的提供的即便通讯服务,都可以无障碍的与其余的及时通讯服务的用户进行交流。例如google 公司2005年推出的Google talk就是一款基于XMPP协议的即便通讯软件。
目前IM即时通讯有四种协议:
这代表XMPP是可扩展的,因此XMPP信息不只能够是简单的文本,并且能够携带复杂的数据和各类格式的文件,也就是说XMPP协议不只能够用在人与人之间的交流,并且能够实现软件与软件或软件与人之间的交流,目前支持XMPP协议的即时通信工具备Gtalk、FaceBook IM、Twitter、网易POPO等等通信工具,具备很是好的发展情景。
正如任何事物都有其自身的发展规律同样,技术和产品的进步也有其自身的规律。
从萌芽到混乱最终标准化,这是互联网产品的基本规律。
IM跟其实发展自Email,跟Email有着不少共同点。对比一下Email目前的状况,或许会有些启示。
Email如今已经被普遍应用,谁都不能质疑其互联网第二应用的地位(第一应用是Web)。
Email之因此能普遍地被应用最关键的缘由应该是Email有一套开放标准的协议规范(包括SMTP、POP、IMAP 等),任何人均可以基于这些协议规范开放本身的Email产品,无论是Email服务器也好,Email收发客户端也罢仍是如今颇为流行的Web形式的 Email界面,它们都是基于同一套标准。
在这套标准的框架下,各个Email相关厂商都各自占据产业链的相应位置,相互合做相互竞争,这才是一个百花齐放的健康竞争环境,并且这种健康竞争最终受益者仍是广大用户。
XMPP的基础部分已经在2002-2004年获得了互联网工程任务组(IETF)的批准, 这意味着XMPP在未来就像咱们认为理所固然的Internet协议TCP/IP、HTTP、FTP、SMTP、POP同样成为Internet标准;这意味着之后咱们就像使用Web、使用Email和使用FTP同样开放地使用IM。
甚至若干年后人们会理所固然地认为163的邮箱能够给Hotmail发邮件同样,QQ用户也能够添加Gtalk用户,人们会逐渐忘却当年军阀割据纷乱的历史。这是一种革命性的进步!不支持XMPP的IM将会像IBM的 Token-Ring同样孤芳自赏或者像DEC NET协议同样被人遗忘。想当年DEC NET和IBM Token-Ring也是多么意气风发羽扇纶巾啊!
在XMPP被批准以前,世界上已经存在了数十种支持XMPP的服务器端和客户端以及数百万用户。嗅觉灵敏的Google做为开放源代码社区和开放标准的最大受益者,第一时间感觉到了这种趋势,因此花重金将Gaim的做者挖去Google,因而就有了基于XMPP的Gtalk。
开放的标准协议会致使产品的竞争更为健康和良性,整个产业链更为完善。固然产品之间的竞争惟一的趋势就是同质化,产品发展到后期比拼的只有服务。这一点在传统产业已经被彻底验证,互联网产业也不能逃脱。至于到时用户是选Gtalk呢仍是选POPO呢,就像用户如今选Gmail仍是163的邮箱同样,能够各有所好。
不过IM在扩展功能以及增值服务上还有很是大的竞争余地。
XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。
所以,基于XMPP的应用具备超强的可扩展性。通过扩展之后的XMPP能够经过发送扩展的信息来处理用户的需求,以及在XMPP的顶端创建如内容发布系统和基于地址的服务等应用程序。并且,XMPP包含了针对服务器端的软件协议,使之能与另外一个进行通话,这使得开发者更容易创建客户应用程序或给一个配好系统添加功能。
可扩展消息处理现场协议(eXtensible Messaging and Presence Protocol , XMPP) 是一种基于可扩展标记语言(eXtensible Markup Language, XML)的近端串流式即时通讯协议。它将现场和上下文敏感信息标记嵌入到XML 结构化数据中, 使得人与人之间、应用系统之间以及人与应用系统之间能即时相互通讯。
XMPP 协议已被批准为互联网即时通讯协议标准。
XMPP中定义了三个角色,客户端,服务器,网关。
基本的网络形式是单客户端经过TCP/IP链接到单服务器,而后在之上传输XML。
XMPP的特色是将复杂性从客户端转移到服务器端。
这使得客户端编写变得很是容易,更新系统功能也一样变得容易。
vCard是一种现存的、普遍使用的,用户我的信息存储的标准,有点像是电子名片。
基础的功能是存储和获取用户的电子身份,该信息是用XML表示的,数据的存储取决于全部现存的Jabber服务器的实现。
客户机/服务器通讯模式、分布式网络、简单的客户端、XML的数据格式。
Openfire 采用Java开发,开源的实时协做(RTC)服务器基于XMPP(Jabber)协议。您可使用它轻易的构建高效率的即时通讯服务器.
Openfire安装和使用都很是简单,并利用Web进行管理。单台服务器可支持上万并发用户。
因为是采用开放的XMPP协议,您可使用各类支持XMPP协议的IM客户端软件登录服务.
JDK1.6 + Openfire For Windows + Mysql5.5 + Tomcat6
JDK1.6 + Openfire For Linux + Mysql5.5 + Tomcat6
下载官网的JDk,而且正常安装,待安装完成后设置环境变量。
下载Openfire,并正常默认安装。
下载安装Mysql,指定Mysql的用户名和密码,以及数据库使用的编码。肯定是否容许远程访问该数据库。
下载Apach基金会下的Tomcat服务器,而且解压安装。
登录Openfire服务器控制台,设置相关的信息。如:端口,插件等。
并将项目部署到Apach tomcat中。
点击运行
ForAndroid、ForPc、ForWeb 都提供了个服务器地址设置的地方。默认Openfire的端口为5222.(除,Silverlight 的端口必须为 4502-4532)
能够在服务器端直接注册用户,也能够在客户端注册用户。
相对应的即时通信方面的操做。
环境搭建请参考:http://www.cnblogs.com/charley_yang/archive/2011/03/27/1997052.html
http://baike.baidu.com/link?url=uPBLWsmv5AL8jWF3vQ4Hhcif-YkhMZB0xfxNfWA56Vgdig0bI9gQudZUICpWkDJb
http://www.cnblogs.com/charley_yang/category/277938.html
http://www.cnblogs.com/luxiaofeng54/archive/2011/03/14/1984026.html