【XMPP】XMPP型別

Leo.cheng發表於2014-02-12

1、ConnectionConfiguration

  1. 作為用於與XMPP服務建立連線的配置。它能配置;連線是否使用TLS,SASL加密。
  2. 包含內嵌類:ConnectionConfiguration.SecurityMode

2、XMPPConnection

  1. XMPPConnection這個類用來連線XMPP服務.
  2. 可以使用connect()方法建立與伺服器的連線。disconnect()方法斷開與伺服器的連線. 
  3. 在建立連線前可以使用XMPPConnection.DEBUG_ENABLED = true; 使開發過程中可以彈出一個GUI視窗,用於顯示我們的連線與傳送Packet的資訊。

3、ChatManager

  1. 用於監控當前所有chat。可以使用createChat(String userJID, MessageListener listener)建立一個聊天。

4、Chat

  1. Chat用於監控兩個使用者間的一系列message。使用addMessageListener(MessageListener listener)當有任何訊息到達時將會觸發listener的processMessage(Chat chat, Message message)方法.
  2. 我們可以使用sendMessage()傳送訊息,這個方法有兩個過載方法,一種類型別的引數時String型別,另一種則是傳入Message物件(後面介紹)。

5、Message

  1. Message用於表示一個訊息包(可以用除錯工具看到傳送包和接收包的具體內容)。它有以下多種型別。
  2. Message.Type.NORMAL -- (預設)文字訊息(比如郵件)
  3. Message.Type.CHAT -- 典型的短訊息,如QQ聊天的一行一行顯示的訊息
  4. Message.Type.GROUP_CHAT -- 群聊訊息
  5. Message.Type.HEADLINE -- 滾動顯示的訊息
  6. Message.TYPE.ERROR -- 錯誤的訊息
  7. Message有兩個內部類:
  8. Message.Body -- 表示訊息體
  9. Message.Type -- 表示訊息型別

6、Roster

  1. 表示儲存了很多RosterEntry的一個花名冊.為了易於管理,花名冊的項被分貝到了各個group中.
  2. 當建立與XMPP服務的連線後可以使用connection.getRoster()獲取Roster物件。
  3. 別的使用者可以使用一個訂閱請求(相當於QQ加好友)嘗試訂閱目的使用者。可以使用列舉型別Roster.SubscriptionMode的值處理這些請求:
  4. accept_all: 接收所有訂閱請求
  5. reject_all:拒絕所有訂閱請求
  6. manual:  手工處理訂閱請求
  7. 建立組:RosterGroup group = roster.createGroup("大學");
  8. 向組中新增RosterEntry物件: group.addEntry(entry);

7、RosterEntry

  1. 表示Roster(花名冊)中的每條記錄.它包含了使用者的JID,使用者名稱,或使用者分配的暱稱.

8、RosterGroup

  1. 表示RosterEntry的組。可以使用addEntry(RosterEntry entry)新增。contains(String user) 判斷某使用者是否在組中.當然removeEntry(RosterEntry entry)就是從組中移除了。getEntries()獲取所有RosterEntry.

9、Presence

  1. 表示XMPP狀態的packet。每個presence packet都有一個狀態。用列舉型別Presence.Type的值表示:
  2. available -- (預設)使用者空閒狀態
  3. unavailable -- 使用者沒空看訊息 
  4. subscribe -- 請求訂閱別人,即請求加對方為好友 
  5. subscribed -- 統一被別人訂閱,也就是確認被對方加為好友 
  6. unsubscribe -- 他取消訂閱別人,請求刪除某好友
  7. unsubscribed -- 拒絕被別人訂閱,即拒絕對放的新增請求 
  8. error -- 當前狀態packet有錯誤
  9. 內嵌兩個列舉型別:Presence.Mode和Presence.Type.
  10. 可以使用setStatus自定義使用者當前的狀態(像QQ一樣的)

 

相關文章