首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

Smack编写jabber客户端(上)

2012-09-03 
Smack编写jabber客户端(下)Smack提供了一个灵活的框架来处理接受到的数据包:org.jivesoftware.smack.Packe

Smack编写jabber客户端(下)

Smack提供了一个灵活的框架来处理接受到的数据包:

org.jivesoftware.smack.PacketCollector?-- 让你同步等待新的包.org.jivesoftware.smack.PacketListener?-- 异步通知你包的到来.一个packet listener在事件风格的程序中使用,packet collector可以做轮循和阻塞操作.它们都可以
使用XMPPConnection?实例来创建.

org.jivesoftware.smack.filter.PacketFilter?接口定义了那些包会分发到PacketCollector?
或者是PacketListener.你可以在?org.jivesoftware.smack.filter?包中找到预定义的filters.

?

// 创建一个包 filter监听特定用户的消息.我们使用AndFilter来联合两个filters.
PacketFilter filter = new AndFilter(new PacketTypeFilter(Message.class),         new FromContainsFilter("mary@jivesoftware.com"));// 假设我们创建了名称为 "connection" XMPPConnection 对象.// 首先使用上面的filter创建PacketCollector对象.PacketCollector myCollector = connection.createPacketCollector(filter);// 接着, 我们创建一个 packet listener. 方便起见我们使用匿名内部类.PacketListener myListener = new PacketListener() {        public void processPacket(Packet packet) {            // 当包到的时候你做什么.        }    };// 注册.connection.addPacketListener(myListener, filter);

?

标准Packet Filters

我们提供了一系列的filters,你可以实现?PacketFilter?接口来自定义实现.PacketTypeFilter?-- filters for packets that are a particular Class type.PacketIDFilter?-- filters for packets with a particular packet ID.ThreadFilter?-- filters for message packets with a particular thread ID.ToContainsFilter?-- filters for packets that are sent to a particular address.FromContainsFilter?-- filters for packets that are sent to a particular address.PacketExtensionFilter?-- filters for packets that have a particular packet extension.AndFilter?-- implements the logical AND operation over two filters.OrFilter?-- implements the logical OR operation over two filters.NotFilter?-- implements the logical NOT operation on a filter.

用Smack编写jabber客户端的基本知识都够了,更多内容请查阅官方资料和mail list请求帮助.

热点排行