1、ConnectionConfiguration
- 作為用於與XMPP服務建立連線的配置。它能配置;連線是否使用TLS,SASL加密。
- 包含內嵌類:ConnectionConfiguration.SecurityMode
2、XMPPConnection
- XMPPConnection這個類用來連線XMPP服務.
- 可以使用connect()方法建立與伺服器的連線。disconnect()方法斷開與伺服器的連線.
- 在建立連線前可以使用XMPPConnection.DEBUG_ENABLED = true; 使開發過程中可以彈出一個GUI視窗,用於顯示我們的連線與傳送Packet的資訊。
3、ChatManager
- 用於監控當前所有chat。可以使用createChat(String userJID, MessageListener listener)建立一個聊天。
4、Chat
- Chat用於監控兩個使用者間的一系列message。使用addMessageListener(MessageListener listener)當有任何訊息到達時將會觸發listener的processMessage(Chat chat, Message message)方法.
- 我們可以使用sendMessage()傳送訊息,這個方法有兩個過載方法,一種類型別的引數時String型別,另一種則是傳入Message物件(後面介紹)。
5、Message
- Message用於表示一個訊息包(可以用除錯工具看到傳送包和接收包的具體內容)。它有以下多種型別。
- Message.Type.NORMAL -- (預設)文字訊息(比如郵件)
- Message.Type.CHAT -- 典型的短訊息,如QQ聊天的一行一行顯示的訊息
- Message.Type.GROUP_CHAT -- 群聊訊息
- Message.Type.HEADLINE -- 滾動顯示的訊息
- Message.TYPE.ERROR -- 錯誤的訊息
- Message有兩個內部類:
- Message.Body -- 表示訊息體
- Message.Type -- 表示訊息型別
6、Roster
- 表示儲存了很多RosterEntry的一個花名冊.為了易於管理,花名冊的項被分貝到了各個group中.
- 當建立與XMPP服務的連線後可以使用connection.getRoster()獲取Roster物件。
- 別的使用者可以使用一個訂閱請求(相當於QQ加好友)嘗試訂閱目的使用者。可以使用列舉型別Roster.SubscriptionMode的值處理這些請求:
- accept_all: 接收所有訂閱請求
- reject_all:拒絕所有訂閱請求
- manual: 手工處理訂閱請求
- 建立組:RosterGroup group = roster.createGroup("大學");
- 向組中新增RosterEntry物件: group.addEntry(entry);
7、RosterEntry
- 表示Roster(花名冊)中的每條記錄.它包含了使用者的JID,使用者名稱,或使用者分配的暱稱.
8、RosterGroup
- 表示RosterEntry的組。可以使用addEntry(RosterEntry entry)新增。contains(String user) 判斷某使用者是否在組中.當然removeEntry(RosterEntry entry)就是從組中移除了。getEntries()獲取所有RosterEntry.
9、Presence
- 表示XMPP狀態的packet。每個presence packet都有一個狀態。用列舉型別Presence.Type的值表示:
- available -- (預設)使用者空閒狀態
- unavailable -- 使用者沒空看訊息
- subscribe -- 請求訂閱別人,即請求加對方為好友
- subscribed -- 統一被別人訂閱,也就是確認被對方加為好友
- unsubscribe -- 他取消訂閱別人,請求刪除某好友
- unsubscribed -- 拒絕被別人訂閱,即拒絕對放的新增請求
- error -- 當前狀態packet有錯誤
- 內嵌兩個列舉型別:Presence.Mode和Presence.Type.
- 可以使用setStatus自定義使用者當前的狀態(像QQ一樣的)