Xmpp学习之Asmack取经-asmack入门(二)
1、UserSearchManager:它是一个建立在Jabber搜索服务(jep-055)的封装类,允许去搜索在Jabber服务端的仓库。它的实现增大了搜索(包括DataForms和非DataForms)中的透明度,同时允许用户简单使用DataForm模型来支持两种类型。主要用来搜索用户,代码样例:
Connection con = new XMPPConnection("jabber.org");
con.login("john", "doe");
UserSearchManager search = new UserSearchManager(con, "users.jabber.org");
Form searchForm = search.getSearchForm();
Form answerForm = searchForm.createAnswerForm();
answerForm.setAnswer("last", "DeMoro");
ReportedData data = search.getSearchResults(answerForm);
2、Form:它是收集数据的表单,它主要包括以下几种类型:
form--一个用来填写的表单
submit--一个已经填写完毕的表单,并且是从表单返回的数据
cancel--表单被取消了
result--从一个搜索或其他查询所返回的数据结果,
因为Form所属类型的不同,可允许对它进行的操作也就不同。例如,只有Form的类型是'submit'的时候使用setAnswer才有效。
3、ReportedData:它是作为一部分搜索而返回的数据结果。以行(Column)和列(Row)的形式展示。
4、Roster:它是一个用户的花名册,主要是用于接收其他用户存在的集合,他的每一个子集分成组易于管理。其他用户可以通过订阅请求来订阅某个用户。
它主要支持3种模式:
accept all--接收所有订阅请求
reject all--拒绝所有订阅请求
manual--自动处理所有订阅请求
5、RosterGroup:一组Roster实体。
6、RosterListener:任意时刻当用户的Roster改变或者状态改变时触发的监听器。需要实现它的四个方法:
presenceChanged:当好友状态改变时触发,
entriesUpdated:当好友同意添加时触发,
entriesDeleted:当好友删除时触发,
entriesAdded:当好友申请时触发。
7、RosterEntity:每一个用户在你的Roster代表一个RosterEntry,它包含了用户自己分配的Jid、用户名、昵称、状态。
8、RosterPacket.ItemStatus:一个Roster项的订阅状态,它是当一个等待改变时用来指示一个订阅状态的一个可选的元素。
9、RosterPacket.ItemType:它是一个枚举变量。主要有both/from/none/remove/to这5个取值。
浙公网安备 33010602011771号