XMPP客户端库Smack 4.0.6版开发之二

简介: 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/41576877 XMPP客户端库Smack 4.0.6版开发之二作者:chszs,转载需注明。
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/41576877

XMPP客户端库Smack 4.0.6版开发之二

作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs

三、Smack库的特征
1、极度简单易用,API功能强大
发送一条文本消息给某个用户只需几行代码:

AbstractXMPPConnection connection = new XMPPTCPConnection("mtucker", "password", "jabber.org");
connection.connect();
connection.login();
Chat chat = ChatManager.getInstanceFor(connection)
		.createChat("jsmith@jivesoftware.com", new MessageListener(){
	public void processMessage(Chat chat, Message message){
		System.out.println("Received message: " + message);
	}
});
chat.sendMessage("Howdy!");

2、隔离了底层数据包组装的复杂性,自然有相应的库来完成这些功能。Smack提供了更智能的高层构造,比如Chat类和Roster类,这样开发会更富有效率。
1)无需熟悉XMPP的XML格式,甚至都不需要了解XML
2)提供了简单的M2M通信
Smack让开发者可以对每条消息都设置大量的属性,属性中还可以包含Java对象。
3)基于Apache许可证的开源代码,这意味着你可以把Smack放入你自己的商业软件中。

四、Smack库的组成
Smack库可以内嵌到任意的Java应用程序中。Smack库有数个JAR文件组成,非常具有灵活性。
1、smack-core.jar
提供了核心XMPP功能。都是XMPP RFC规范定义的XMPP特性。
2、smack-extensions.jar
支持许多由XMPP Standards Foundation定义的扩展(XEP)功能。包括群聊、文件传输、用户搜索等等。
以后可查看文档《扩展手册》:
https://github.com/igniterealtime/Smack/blob/master/documentation/extensions/index.html
(目前还是无效的)
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调试器。当调试模式开启后,如果它在类路径下,它会自动被使用。
以后可查看文档《调试模式》:
https://github.com/igniterealtime/Smack/blob/master/documentation/debugging.html
(目前还是无效的)

五、Smack的配置
Smack的初始化过程涉及到2阶段的调用。
1、初始化系统属性
通过SmackConfiguration类初始化所有的系统可访问属性,这些属性都是通过getXXX方法取回属性值的。
2、初始化启动类
任意类如果继承了SmackInitializer接口后,都可以在调用initialize()方法后得到初始化,这意味着得到初始化的类在启动后都是活动的。
如果没有继承SmackInitializer接口,那么要实现初始化,必须要放置一个静态代码块来实现——他在类装载时会自动执行。

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


目录
相关文章
|
7天前
|
网络协议 Java API
Python网络编程基础(Socket编程)Twisted框架简介
【4月更文挑战第12天】在网络编程的实践中,除了使用基本的Socket API之外,还有许多高级的网络编程库可以帮助我们更高效地构建复杂和健壮的网络应用。这些库通常提供了异步IO、事件驱动、协议实现等高级功能,使得开发者能够专注于业务逻辑的实现,而不用过多关注底层的网络细节。
|
9月前
|
移动开发 监控 网络协议
基于Socket通讯(C#)和WebSocket协议(net)编写的两种聊天功能(文末附源码下载地址)
基于Socket通讯(C#)和WebSocket协议(net)编写的两种聊天功能(文末附源码下载地址)
|
测试技术 API
【.NET6】gRPC服务端和客户端开发案例,以及minimal API服务、gRPC服务和传统webapi服务的访问效率大对决
前言:随着.Net6的发布,Minimal API成了当下受人追捧的角儿。而这之前,程序之间通信效率的王者也许可以算得上是gRPC了。那么以下咱们先通过开发一个gRPC服务的教程,然后顺势而为,再接着比拼一下minimal api服务和gRPC服务在通信上的效率。
363 0
【.NET6】gRPC服务端和客户端开发案例,以及minimal API服务、gRPC服务和传统webapi服务的访问效率大对决
|
Web App开发 JavaScript 前端开发
【转】Cowboy 开源 WebSocket 网络库
原文链接: http://www.cnblogs.com/gaochundong/p/cowboy_websockets.html
1056 0
XMPP客户端库Smack
原文博客地址:http://blog.csdn.net/chszs/article/details/41576877
832 0
|
数据安全/隐私保护 iOS开发 分布式计算
|
数据安全/隐私保护 安全
XMPP客户端库Smack 4.0.6版开发之四
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/41620825 XMPP客户端库Smack 4.0.6版开发之四 作者:chszs,转载需注明。
865 0
XMPP客户端库Smack 4.0.6版开发之五
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/41620843 XMPP客户端库Smack 4.0.6版开发之五 作者:chszs,转载需注明。
666 0