Smackt提供了一个灵活的框架来处理传入的Packt,使用两个构造器:
一个packet listener使用事件类型编程,然而packet controller有一个packet结果队列,你可以做轮询和阻塞操作。所以,packet listener当你想无论何时一个packet传入的时候做一些动作的时候非常有用。所以,一个packet
listener当你想等待一个指定的packt抵达的时候非常有用。packt collector和listener能使用一个Connection实例被创建。
org.jivesoftware.smack.filter.PacktFilter接口决定了哪个指定的packt被发送到PacktCollector或者PacktListener。许多预定义的过滤器能在org.jivesoftware.smack.filter包中被找到。
下面的代码片段演示了一个packet collector和一个packet listener的注册。
// Create a packet filter to listen for new messages from a particular
// user. We use an AndFilter to combine two other filters.
PacketFilter filter = new AndFilter(new PacketTypeFilter(Message.class), new FromContainsFilter("mary@jivesoftware.com"));
// Assume we've created a Connection name "connection".
// First, register a packet collector using the filter we created.
PacketCollector myCollector = connection.createPacketCollector(filter);
// Normally, you'd do something with the collector, like wait for new packets.
// Next, create a packet listener. We use an anonymous inner class for brevity.
PacketListener myListener = new PacketListener() {
public void processPacket(Packet packet) {
// Do something with the incoming packet here.
}
};
// Register the listener.
connection.addPacketListener(myListener, filter);
标准的Packt过滤器
一个丰富的packet过滤器被包含在Smack中,或者你能通过对PacketFilter接口创建你自己的过滤器。过滤器默认的集合包括:
-
PacketTypeFilter--一个指定Class类型packet的过滤器。
-
PacketIDFilter--一个指定packet
ID的packet的过滤器。
-
ThreadFilter--一个指定thread
ID的packet的消息packet的过滤器。
-
ToContainsFilter--发送给一个指定地址的packet的过滤器。
-
FromContainsFilter--发送给一个指定地址的packet的过滤器。
-
PacketExtensionFilter--有一个指定packet扩展名packet的过滤器。
-
AndFilter--实现两个过滤器的逻辑AND操作。
-
OrFilter--实现了两个过滤器的逻辑OR操作。
-
NotFilter--实现了一个过滤器的逻辑NOT操作。
分享到:
相关推荐
Android 链接openfire的smack库
Big Data SMACK: A Guide to Apache Spark, Mesos, Akka, Cassandra, and Kafka by Raul Estrada, Isaac Ruiz English | ISBN: 1484221745 | 2016 | EPUB | 264 pages | 2.35 MB This book is about how to ...
Smack About Smack is an open source, highly modular, easy to use, XMPP client library written in Java for Java SE compatible JVMs and Android. A pure Java library, it can be embedded into your ...
SMACK处理C语言的复杂功能,包括动态内存分配,指针算术和按位运算。 在幕后,SMACK是从编译器流行的中间表示(IR)到中间验证语言(IVL)的翻译器。 采购LLVM IR会利用越来越多的编译器前端,优化和分析。 尽管...
org.jivesoftware.smack-3.2.2.jar
它主要由用于构建 Android 版本的 Smack。 但是由于 aSmack 只是在 Smack 分支上更改了一些内容并添加了补丁,因此这些分支也可以在非 Android 环境中使用。分行掌握xep0198 上游的smack-aiv smack 来自 ,他也在...
将 Swing 应用程序框架 (JSP-296) 的实现与 SwingX Swing 扩展相结合,增加了一些趣味。
这一节中我们着力介绍如何基于asmack开发一个Android的客户端,本篇的重点在实践,讲解和原理环节,大家可以参考前面我所发布的OpenFire和Smack的相关文章。今天所讲解的文章只是 :基于Smack3.0.4+ Openfire3.10.2...
m 关于 是用Java编写的开放源代码,高度... 此外,由于smack-core是根据Apache License 2.0授权的,因此该条件适用于使用Smack的每个项目。 可以使用Smack.getNoticeStream()方便地检索Smack的NOTICE文件的内容。 Sm
Smack和XMPP允许您在人类和非人类端点(M2M,IoT,…)之间以多种方式轻松交换数据,例如,即弃即发,发布-订阅。 会提供更多信息。 入门 首先看一下和。 中提供了有关如何在Java或Android项目中使用Smack的说明。 ...
Apress源代码 该存储库随附Raul Estrada和Isaac Ruiz的 (Apress,2016年)。 使用绿色按钮将文件下载为zip格式,或使用Git将存储库克隆到您的计算机上。 发行版 版本v1.0对应于已出版书籍中的代码,没有更正或更新...
摘要:在今天的文章中,我们将着重探讨如何利用SMACK(即Spark、Mesos、Akka、Cassandra以及Kafka)堆栈构建可扩展数据处理平台。虽然这套堆栈仅由数个简单部分组成,但其能够实现大量不同系统设计。除了纯粹的批量...
smack用于android移动端的开发,可以结合openfire使用,进行im通信
openfire客户端smack4.1.x开发所包含的完整依赖包(smack本身+外置libs),实测4.1.1完美运行。
1)smack api,基于smack官方javadoc制作而成,格式chm,语言english; 2)smack documentation,内容包括Overview,Getting Started Guide等等,格式chm,语言为中文(感谢fhqdddddd的奉献,本文档基于...
Smack中文文档Smack中文文档Smack中文文档Smack中文文档Smack中文文档Smack中文文档Smack中文文档Smack中文文档Smack中文文档Smack中文文档
smack-im-4.2.2.jar smack-tcp-4.2.2.jar smack-extensions-4.2.2.jar smack-core-4.2.2.jar smack-android-extensions-4.2.2.jar jxmpp-jid-0.6.0.jar jxmpp-core-0.6.0.jar jxmpp-util-cache-0.6.0.jar等jar包
smack源码
android openfire xmpp smack即时通讯,包括:聊天发生文字,表情,图片,语音。添加删除好友,消息提醒,群聊,邀请好友进入房间,聊天记录保存等等。界面美观。最后说明:此demo是在网上一个叫EIM企信通的demo基础...
Smack帮助文档中文版:XMPP协议包括一个基本协议和许多可选扩充,像具有代表性的"JEP's".Smack 为核心XMPP协议提供了org.jivesoftware.smack包,为许多协议扩充提供了org.jivesoftware.smackx包.