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个取值。

posted on 2014-06-12 22:17  小样来玩玩  阅读(380)  评论(0)    收藏  举报

导航