2015年1月25日 星期日

Android 基於xmpp協議,smack包,openfire服務端的高仿QQ的即時通訊實現【1】openfire ...

http://www.apkbus.com/blog-125132-52800.html

最近在研究android的即时通讯,总结了一些东西,自己写了个简单的QQ,希望能给在做这方面的同学们提供些帮助,实现简单,勿喷!


关于openfire

我采用的是openfire现成的服务端,采用openfire作为服务器,这样不需要再写一个服务器,会节省不少事情,openfire经过简单的配置就可以实现一个通信服务器的基本功能,


关于xmpp协议
xmpp : The Extensible Messaging and Presence Protocol
中文全称:可扩展通讯和表示协议
简介:
可扩展通讯和表示协议 (XMPP) 可用于服务类实时通讯、表示和需求 - 响应服务中的 XML 数据元流式传输。XMPP 以 Jabber 协议为基础,而 Jabber 是即时通讯中常用的开放式协议。
 

关于Smack.jar
Smack是一个开源,易于使用的XMPP(jabber)客户端类库。
Smack API, 是一个 Java 的XMPP Client Library,也是由Jive Software开发。 优点:编程简单。 缺点:API并非为大量并发用户设计,每个客户要1个线程,占用资源大,1台机器只能模拟有限(数千个)客户.
smack是一个用 java 写的XMPP客户端代码库, 是 spark 的核心.
smack的优点:
1:Smack是一个简单的,功能强大的类库。
2:不会强迫你向其他类库那样,在信息包层面进行编码。它提供了更加智能化的类比如Chat和Groups,能使你的工作更富效率。
3:不需要你熟悉XMPP XML格式,甚至是XML格式。
4:易于实现机-机对话。
5:Apace License下的开源软件。你可以把它用于你的商业或非商业应用程序。

现在先来看看openfire服务器的搭建,
在官网上下载openfire后,解压,打开bin目录中的openfire.exe,点击launch admin,打开openfire管理控制台,第一次进入会出现配置界面,
因为只实现简单功能,服务器暂时不做复杂配置。数据库可以选择openfire自带的【嵌入的数据库】,也可以选择本地【标准的数据库连接】。
当选择的是【标准的数据库连接】需要一些数据库配置,这里我使用的SQLServer数据库,新建数据库名字qq。
至此服务器简单配置就完成了。可以打开新建的数据库qq,能看见自动生成了以下表:
然后,http://127.0.0.1:9090/ 可以登录到管理控制台进行管理,可以创建用户等等。