全部博文(626)
分类: 架构设计与优化
2014-11-29 12:57:03
XMPP客户端库Smack 4.0.6版开发之二
六、建立连接的例子
XMPPConnection类用于创建一个到XMPP服务器的连接,代码例子如下:
// 创建一个到jabber.org服务器的连接 AbstractXMPPConnection conn1 = new XMPPTCPConnection("username", "password", "jabber.org"); conn1.connect();
// 创建一个到jabber.org服务器指定端口的连接 XMPPTCPConnectionConfiguration config = XMPPTCPConnectionConfiguration.builder() .setUsernameAndPassword("username", "password") .setServiceName("jabber.org") .setHost("earl.jabber.org") .setPort("8222) .build(); AbstractXMPPConnection conn2 = new XMPPTCPConnection(config); conn2.connect();
Roster用于跟踪其他用户是否在线。用户的联系人可以以分组的方式进行组织,比如“好友”、“同事”。然后就可以查看组中的每个用户是否在线了。
要检索Roster,使用XMPPConnection.getRoster()方法。Roster类允许你查找所有的Roster实体,以及他们属于哪个组,每个实体当前的在线状态。
八、读写Packet(数据包)
从客户端发送到XMPP服务器的每一条消息都称为一个Packet(数据包)。org.jivesoftware.smack.packet库中包含了XMPP支持的(消息Message、在线状态Presence、IQ)三种不同的基本数据包类型的封装类。而像Chat或GroupChat这样的类则提供了更高层的结构来管理数据包的自动创建和发送。但是,开发者还是可以直接创建和发送数据包的。
下面的代码就是修改自己的在线状态,让其他人知道你不在线。
// 创建新在线状态对象,并设为离线状态 Presence presence = new Presence(Presence.Type.unavailable); presence.setStatus("Gone fishing"); // 发送数据包(假设我们已经有XMPPConnection的连接实例con con.sendPacket(presence);