XMPP 学习笔记三 SmackAPI

转自:http://blog.csdn.net/xundh/article/details/51871697


SmackAPI

SmackAPI是一个Java语言的XMPP客户端SDK, 
https://github.com/igniterealtime/Smack/

包介绍

1、smack-core.jar 
XMPP RFC规范定义的XMPP核心功能。

2、smack-extensions.jar 
XMPP Standards Foundation定义的扩展(XEP)功能。 
包括群聊、文件传输、用户搜索等等。

3、smack-experimental.jar 
由XMPP Standards Foundation定义的体验性(XEP)功能。其API和功能特性都被认为是不稳定的。

4、smack-legacy.jar 
由XMPP Standards Foundation定义的遗留(XEP)功能。

5、smack-bosh.jar 
支持BOSH通信(XEP-0124规范定义的)。此代码被认为处于Beta阶段。

6、smack-jingle.jar 
支持Jingle。此代码很老,目前处于无维护的状态。

7、smack-resolver-dnsjava.jar 
支持对DNS SRV记录的解析,主要用于那些不支持javax.naming API的平台。

8、smack-debug.jar 
用于协议流量的增强型GUI调试器。当调试模式开启后,如果它在类路径下,它会自动被使用。

Smack的配置

Smack的初始化过程涉及到2阶段的调用。 
1、初始化系统属性 
通过SmackConfiguration类初始化所有的系统可访问属性,这些属性都是通过getXXX方法取回属性值的。

2、初始化启动类 
任意类如果继承了SmackInitializer接口后,都可以在调用initialize()方法后得到初始化,这意味着得到初始化的类在启动后都是活动的。 
如果没有继承SmackInitializer接口,那么要实现初始化,必须要放置一个静态代码块来实现——他在类装载时会自动执行。

初始化是通过配置文件来完成的。默认情况下,Smack会载入Smack JAR文件中内嵌的配置文件(它位于org.jivesoftware.smack/smack-config.xml)。这个指定的配置文件包含了一系列需载入初始化的类列表。所有的管理器类型的类都需要被初始化,这些管理器类就包含在上面所说的初始化列表中。

代码示例

手动安装时要下载XPP3 
http://www.extreme.indiana.edu/xgws/xsoap/xpp/mxp1/

这里使用maven安装:

首先初始化一个项目

mvn archetype:generate -DgroupId=com.xundh.xundhxmpp -DartifactId=helloworld -Dpackage=com.xundh.xundhxmpp -Dversion=1.0-SNAPSHOT

cd helloworld
 
 
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

在pom.xml加入依赖

这里4.2.0加载出错,我使用4.1.7版本。

<dependency>
        <groupId>org.igniterealtime.smack</groupId>
        <artifactId>smack-java7</artifactId>
        <version>4.1.7</version>
</dependency>
<dependency>
        <groupId>org.igniterealtime.smack</groupId>
        <artifactId>smack-tcp</artifactId>
        <version>4.1.7</version>
</dependency>
<dependency>
        <groupId>org.igniterealtime.smack</groupId>
        <artifactId>smack-im</artifactId>
        <version>4.1.7</version>
</dependency>
<dependency>
        <groupId>org.igniterealtime.smack</groupId>
        <artifactId>smack-extensions</artifactId>
        <version>4.1.7</version>
</dependency>
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

运行:

mvn install
 
 
  • 1
  • 1

连接

AbstractXMPPConnection conn1 = new XMPPTCPConnection("username", "password", "jabber.org");  
conn1.connect();  
 
 
  • 1
  • 2
  • 1
  • 2

参考: 
http://blog.csdn.net/chszs/article/details/41576877

一些有用的资源: 
Converse.js WEB-XMPP 
.NET的XMPP开发包 JabberNet 
.NET的XMPP开发包 MatriX

这里有更多资源 http://www.open-open.com/lib/view/open1326015960796.html

一个网友经验总结:http://my.oschina.net/pzh0819/blog/113946


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值