smack开发文档

更新时间:2023-06-18 01:11:55 阅读: 评论:0

1 XMPP接口概述
Smack是一个用于和XMPP服务器通信的类库,由此可以实现即时通讯和聊天。
1.1 概述
1.1.1 Smack主要优势
非常简单易用,并且有十分强大的 API。只需三行代码就可以向用户发送文本消息:
XMPPConnection connection = new XMPPConnection("jabber");
connection.login("mtucker", "password");
ateChat("").ndMessage("Howdy!");
不像其它类库那样强制您进行包级别的编码。Smack提供智能的更高级的构造,像 ChatGroupChat类,让您进行高效的编程。不需用您熟悉XMPP XML格式,即使您熟悉 XML.
提供简单的设计以进行通讯,Smack允许您在每个消息中设置任意数量的属性,包括java对象。
Apache许可下的开源类库,这意味着您可以将Smack整合进您的商业或非商业的应用中。
1.1.2 关于 XMPP
XMPP (eXtensible Messaging and Prence Protocol)是一个由Jabber Software Foundation (www.jabber)领导的开放的基于XML的协议,并且获得了 IETF的批准。
1.1.3 怎样使用该文档
在使用该文档时假设您已经了解XMPP即时通讯的主要特征。在您阅读该文档的同时强烈建议您打开 Javadoc API 帮助文档作为参考。 这个文档将会向您介绍Smack API,并且简要介绍一些重要的类和概念。
1.1.4 必要条件
Smack的唯一必要条件是JDK 1.2 或更高版本1smack.jar文件已包含一个XMLdecade是什么意思解析器,不需要其它第三方类库。
1 JDK 1.2 and 1.3 用户如果想使用SSL连接则classpath在中必须存在JSSE类库。
1.2 建立连接
XMPPConnection类用来建立到XMPP服务器的连接。要建立SSL连接,要使用SSLXMPPConnection类。下面是建立连接的例子:
// 建立一个到jabber服务器的连接。
XMPPConnection conn1 = new XMPPConnection("jabber");

// 通过一个特殊的端口建立一个到jabber服务器的连接。
XMPPConnection conn2 = new XMPPConnection("jabber", 5222);

// 建立一个到jabber服务器的SSL连接。
XMPPConnection connection = new SSLXMPPConnection("jabber");
一旦您建立了一个连接,您必须通过方法XMPPConnection.login(String urname, String password)使用用户名和密码登陆。
如果登陆成功,您可以通过创建新的Chatxcopy或GroupChat对象和其它用户聊天。
1.3 操作Roster
Roster能够让您跟踪其它用户的有效性(存在)。您可以通过使用像零基础学英语“朋友同事这样的组来组织用户,这样您可以发现每个用户是否在线。
使用Roster()这个方法得到Roster。通过Roster类您可以找到所有Roster登陆、他们所属的组以及每个登陆当前的存在状态。
1.4 读写Packet
从客户端以XML格式发送到XMPP服务器的每个消息被称为一个“packet”org.jivesoftware.smack.packet包中包含了一些类,这些类封装了XMPP所允许的三个不同的基本packet类型(message, prence, IQ) ChatGroupChat这样的类提供了更高类别的构造能够自动地创建和发送packet,但是您也可以直接创建和发送packet 下面是一个通过改变您的prence来让别人知道您已无效,已经"out fishing":
/
/ 创建一个新的hbaprence. 传入fal以指示我们已经无效了在某处
Prence prence = new Prence(Prence.Type.UNAVAILABLE);
prence.tStatus("Gone fishing");
// 发送packet (假设已经有了一个名为"con"XMPPConnection实例).
con.ndPacket(prence);
Smackthe carpenters提供两种方法读取收到的packetPacketListener[packet监听器]PacketCollector[packet收集器] 二者都是使用PacketFilter实例来决定哪个packet应该被处理。packetblindness监听器用于事件样式的编程,而packet收集器有一个可以做轮询和阻塞操作的packet的结果队列。所以,当您想对一个有可能随时到来的packet采取一些操作时,使用packet监听器;而当您想等待一个特别的packet到来时,使用packet收集器。您可以使用XMPPConnection实例创建欢喜金刚packet收集器和监听器。
2 Smack类库详细介绍
Smack是一个为使用XMPP服务器聊天和发送即时消息交流而提供的库。
Smack的主要优势:
使用简单且拥有强大的API。向用户发送一条文本消息只需用一下三行代码即可完成 
XMPPConnection connection = new XMPPConnection("jabber");
connection.login("mtucker", "password");
ateChat("").ndMessage("Howdy");
不像其它库那样,强制你在信息报级(packet level)编码。Smack提供智能的、更高级别的结构,例如:ChatGroupChat类,这写能让你的程序效率更高。
你不需要熟悉XMPP  XML格式,甚至不熟XML
提供简单的机器到机器的通讯。Smack允许你对每一条消息设置任意数量的属性,包括Java对象属性。
Apache许可的开放源码,你可将其用于商业的和非商业的应用。
关于XMPP
XMPP (eXtensible Messaging and Prence Protocol)是一个开放的,
如何使用本文档
本文档假定你已经熟悉XMPP即时消息的主要特征。我们推荐你在阅读该文档时打开Javadoc API作为参考。
2.1 开始Smack
本文档将向你介绍Smack API,并大概介绍几个重要的类和概念。
必备的条件
你只需要有JDK 1.2或之后的版本1和已经内嵌在smack..jar文件中的XML分析器,不需要第三部分库。
JDK 1.2 and 1.3的用户若想使用SSL连接必须在他的类路径下有JSSE库。
2.1.1 建立一个连接
八年级下册英语练习册答案
XMPPConnection类是为XMPP服务器建立连接的类。若要创建SSL连接,需使用SSLXMPPConnection类,以下是创建连接的例子。
// Create a connection to the jabber rver.
XMPPConnection conn1 = new XMPPConnection("jabber");
  gpsantenna
// Create a connection to the jabber rver on a specific port.
XMPPConnection conn2 = new XMPPConnection("jabber", 5222);
 
// Create an SSL connection to jabber.
XMPPConnection connection = new SSLXMPPConnection("jabber");
如果创建了一个连接,你应该使用XMPPConnection.login(String urname, String password)方法(参数为用户名和密码)进行登陆。一旦登陆成功,你就可以通过创建一个新的Chat GroupChat对象与其它用户聊天。
2.1.2 使用花名册(Working with the Roster)
    花名册让你很清楚的知道其它可用的用户。用户可以被分成像朋友合作者这样的组,
从而知道其它的用户在线还是离线。
可以使用Roster()方法检索花名册。你可以用花名册(roster)类查找花名册的所有条目,它们所属的组以及每个条目当前呈现的状态。
2.1.3 读、写信息包(Reading and Writing Packets)
       从客户端发送到XMPP的每一条消息称为一个信息包,并作为XML发送。org.jivesoftware.smack.packet包含封装了三个XMPP允许的、不同的基本包类型(message, prence, and IQ)的类。像ChatGroupChat这样的类提供更高级别的结构,它可以自动的创建和发送信息包,当然你也可以直接创建和发送信息包。以下代码是一个将你的当前状态改为隐身,从而不被别人看到的例子:
// Create a new prence. Pass in fal to indicate we’re unavailable.
Prence prence = new Prence(Prence.Type.UNAVAILABLE);
prence.tStatus("Gone fishing");
// Send the packet (assume we have a XMPPConnection instance called "con").
con.ndPacket(prence);

本文发布于:2023-06-18 01:11:55,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/148793.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:用户   使用   连接   文档
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图