游子的博客
慈母手中线,游子身上衣, 临行密密缝,意恐迟迟归, 谁言寸草心,报得三春晖。 数据读取中,请稍候......
posts - 337,  comments - 546,  trackbacks - 0

深入学习

XMPP

协议

 

一.

XMPP

(协议简介)

 

 

 

 

 

XMPP

协议(

Extensible Messaging and PresenceProtocol

,可扩展

消息处理现场协议)是一种基于

XML

的协议,目的是为了解决及时

通信标准而提出来的,最早是在

Jabber

上实现的。它继承了在

XML

环境中灵活的发展性。因此,基于

XMPP

的应用具有超强的可扩展

性。

并且

XML

很易穿过防火墙,

所以用

XMPP

构建的应用不易受到

防火墙的阻碍。利用

XMPP

作为通用的传输机制,不同组织内的不

同应用都可以进行有效的通信。

 

二.

IM

(即时通讯软件简介)

 

 

 

 

Instant 

Messenger

,及时通信软件,就是大家使用的

QQ

MSN 

Messenger

Gtalk

等等。其中

Gtalk 

就是基于

XMPP 

协议的一个实

现,其他的则不是。当前

IM 

几乎作为每个上网者必然使用的工具,

在国外的大型企业中有一些企业级的

IM

应用,但是其商业价值还没

完全发挥出来。设想既然

XMPP 

协议是一个公开的协议,那么每个

企业都可以利用它来开发适合本身企业工作,提高自身生产效率的

IM

;甚至,你还可以在网络游戏中集成这种通信软件,不但让你可

以边游戏边聊天,

也可以开发出适合游戏本身的

IM 

应用,

比如说一

些游戏关键场景提醒功能,

团队语音交流等等都可以基于

IM

来实现。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

文档源于:

com.lilin.doyourimagine 

三.本文主要内容

 

 

 

 

 

本文主要讲解在

android

使用

xmpp

协议进行即时通信,

所涉及

3

个主要的东西,它们是

openfire

smack

spark

,这个三个东东结合

起来就是完整的

xmpp 

IM

实现,这里简单介绍一下这

3

个东东在下

文的作用:

 

 

 

 

 

 

openfire

主要是作为服务器,

负责管理客户端的通信连接,

以及

提供客户端一些通信信息和连接信息。

 

 

 

 

 

 

Smack

主要是

xmpp

协议的实现,提供了一套很好的

api

,所以

下面操作

xmpp

都是通过使用

smack

api

来实现,当然因为是在

android

里,所以使用的是

asmack

这个包,里面方法跟

smack

包差不

多。

 

 

 

 

 

Spark 

IM

客户端的实现,其实就是使用了

smack 

api

实现

的。

 

数据通讯具体实现的流程:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

文档源于:

com.lilin.doyourimagine 

四.开发具体配置环境:

 

1.

配置

openfire

服务器

 

 

Openfire

是一个强大的即时消息(

IM

)和聊天服务器,它实现了

XMPP

协议

,

可以使用

它轻易的构建高效率的即时通信服务器

其安装和部署都十分简单,并利用

Web

进行管理。单台服务器可支持上万并发用户,由于

是采用开放的

XMPP

协议,可以使用各种支持

XMPP

协议的

IM

客户端软件登陆服务。

 

 

安装前准备工作:

 

一:

Java

运行环境(已安装

 

则可跳过此步骤)

 

官方下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/index.html 

二:数据库(之前已安装

 

则可跳过此步骤)

 

数据库可以使用

DB2,Oracle,MySQL,PostgreSQL,SQL Server

等其中任意一种

 

安装前准备工作完成后:

 

一:建立数据库

 

a.

建立数据库,记下数据库名,如

OpenfireServer

 

b.

在数据库管理系统下建立新用户,如

OpenfireUser

 

选择

SQL server

身份验证,把强制密码过期的勾去掉,只勾上强制实施密码策略。

 

在下面的数据库下拉列表中选择

OpenfireServer

,然后确定即可。

 

c.

然后在

OpenfireServer

数据库目录下,在其安全性中,新建一个用户,用户名任取。

 

登录名

 

选择上面创建的

OpenfireUser

,架构

 

选择

 

db_owner,

数据库角色成员身份选择

db_owner, 

二:安装

Openfire 

a.

到官方下载最新版的

Openfire

安装包

 

官方网址为:

http://www.igniterealtime.org/projects/openfire/ 

b.

双击

Openfire

安装包开始安装

 

安装完毕后,会有提示框提示

 

是否登录,此时先放着不动

 

三:执行数据库脚本

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

文档源于:

com.lilin.doyourimagine 

a.

Openfire

安装目录下:如

D:\Program Files\Openfire\resources\database 

下面有几个数据库的

SQL

脚本,直接拖动到

SQL Server Studio

中执行,

 

执行前确保

 

可用数据库下拉列表

 

选中的是

OpenfireServer

 

b.

接着连接对象资源管理器,使用

SQL Server

身份验证方式,输入用户名

OpenfireUser

密码

 

尝试进行登录操作。若成功登陆,则证明数据库建立成功。

 

四:首次设置

Openfire 

a.

点击

Openfire

提示框中

Launch Admin 

按钮,进入首次设置页面

 

b.

语言

 

选择

 

简体中文

 

数据库

 

选择

 

标准数据库连接

 

选择相应的数据库驱动类型;

URL

一栏中,把

[hostname]

改成当前的主机名;

 

[database]

改成数据库名

OpenfireServer

;接着分号后面的

Appname

全部去掉;

 

点击

 

continue 

,设置密码

——

>>

结束

 

五:重启

Openfire 

 

然后登录管理页面,进行

Openfire

管理。

 

至此,恭喜您,

Openfire

部署安装完成。

 

配置成功如果以后

ip

地址变了,那肯定又是开不了,解决办法请移步:

http://blog.csdn.net/HappySheepherder/article/details/4707124 

配置成功后,在服务器创建一个简单的用户来测试,然后安装

spark

,设置好服务器的

ip

与端口,使用刚才创建的用户登录,登录

OK

说明服务器成功搭建。

 

 

 

 

 

2.

客户端配置要求

 

1

android 2.2

平台及以上。

 

2

asmack-jse.jar

开发必须包。

 

3

)客户端

Eclispse

,服务端

Myeclipse IDE

开发环境。

 

 

五.具体实例展示

 

1.

先建一个

Android

项目。

 

 

2.

导入项目必须的

XMPP

协议

jar

包。

 

 

 

4

通过

XMPP

协议规则,进行数据通讯。

 

 

 

 

 

 

 

 

最后我们就可以利用

connection

进行连接,登录,注册

.... 

 

 

..

posted on 2013-02-19 18:06 游子 阅读(1449) 评论(0)  编辑 收藏 引用 所属分类: 软件
只有注册用户登录后才能发表评论。

欢迎大家扔鸡蛋!送鲜花!

博客可以收入过千吗?

<2006年7月>
日一二三四五六25262728293012
34567891011121314151617181920212223242526272829303112345

常用链接

留言簿(8)

随笔分类(314)

随笔档案(337)

文章分类(7)

文章档案(10)

相册

收藏夹(1)

其它

友情链接

数字电视

生活、旅游

自己的链接

计算机

搜索

  •  

积分与排名

  • 积分 - 403611
  • 排名 - 9

最新评论

阅读排行榜

评论排行榜