1. 即时通讯技术简介(IM)
即时通讯技术(IM-Instant Messageing)支持用户在线实时交谈。如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的内容。
有许多IM的系统,入AOL、MSN、QQ等,他们最大的区别在于各自通讯协议的实现,所以即时通讯技术的核心在于它的传输协议。
协议用来说明信息在网络上如何传输,如果有了统一的传输协议,那么应当可以实现各个IM之间的直接通讯,为了创建即时通讯的统一标准,目前已经出现过的IM协议包括:IETF的对话初识协议(SIP)、即时通讯协议(PRIM)、基于XML且开放的可扩展通讯和表示协议(XMPP,也称为Jabber协议)。
人们多次努力,试图统一各大主要IM供应商的标准(AOL、Yahoo及Microsoft),但是没一个成功,且每一种IM仍然继续使用自己所拥有的协议。
2. XMPP简介
XMPP是基于XML的协议,用于即时消息(IM)以及在线现场探测。最初,XMPP作为一个框架开发,目标是支持企业环境内的即时消息传递和联机状态应用程序。
XMPP前身是Jabber(1998年)一个开源组织定义的网络即时通讯协议。
XMPP是一个分散型通信网络,这意味着,只要网络基础设施允许,任何XMPP用户都可以向其它任何XMPP用户传递消息。多个XMPP服务器也可以通过一个专门的‘服务器-服务器’协议相互通信,提供了创建分散型社交网络和协作框架的可能性。
尽管XMPP的出现时为了满足‘个人-个人’即时消息传递的要求,但它完全不必局限于此任务。
3. XMPP概述
XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。这表明XMPP是可扩展的。可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另外一个进行通话,这使得开发者更容易建立客户应用程序或给一个配置好的系统添加功能。
XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。
XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的,与其他已得到广泛使用的即时通讯协议,诸如AIM、QQ等有功能完整、完善等先进性。
XMPP的扩展协议Jingle使得其支持语音和视频,目前IOS尚不支持
XMPP的官方文档是RFC 3920
XMPP协议曾经是Google力推的通信协议,其代表作品是GTalk
4. 安装服务器
安装服务器之前,首先要配置以下信息:
①安装数据库mysql(这里安装的是5.6.30)
最好到官网下载: http://dev.mysql.com/downloads/mysql/5.6.html#downloads
win系统的安装可以参照: MySQL服务器安装配置-非安装版、windows版
安装好mysql后,我们这里建立一个数据库名为 openfire
②安装jdk
③安装openfire
官方下载地址:http://www.igniterealtime.org/downloads/index.jsp#openfire
1)下载完之后,我们打开openfire,看到下面界面:
2)点击‘Launch Admin’来打开网页。我们在下面网页中一步一步地做配置。如下:
3)点击continue,下面的都可以随便下,如下:(请记住域这个配置,这里设置GZ0111)
4)点击继续,如下:
5)配置数据库,注意地址是本机=127.0.0.1,database=openfire。因为我们上面已经新建这个数据库。
6)继续,如下:
7)设置管理员,这里填写admin@example.com/111111,如下:
8)完成之后,我们登录:(用户名不是邮箱地址,这里是admin)
9)登录之后,我们在用户组里面添加用户
5. 安装客户端
1)安装spark
到网站上面下载Spark: http://www.igniterealtime.org/downloads/index.jsp
我们运行Spark,用户密码为test1/111111、服务器为本机。
成功后,我们可以看到下面界面
2)陆续更新
如果想了解更多socket知识,请查看上一篇文章