1垫毙、ConnectionConfiguration
- 作為用于與XMPP服務建立連接的配置。它能配置全景;連接是否使用TLS俐巴,SASL加密骨望。
包含內(nèi)嵌類:ConnectionConfiguration.SecurityMode
2、XMPPConnection
- XMPPConnection這個類用來連接XMPP服務.
可以使用connect()方法建立與服務器的連接欣舵。disconnect()方法斷開與服務器的連接.
在創(chuàng)建連接前可以使用XMPPConnection.DEBUG_ENABLED = true; 使開發(fā)過程中可以彈出一個GUI窗口擎鸠,用于顯示我們的連接與發(fā)送Packet的信息。
3缘圈、ChatManager
- 用于監(jiān)控當前所有chat劣光。可以使用createChat(String userJID, MessageListener listener)創(chuàng)建一個聊天糟把。
4绢涡、Chat
- Chat用于監(jiān)控兩個用戶間的一系列message。使用addMessageListener(MessageListener listener)當有任何消息到達時將會觸發(fā)listener的processMessage(Chat chat, Message message)方法.
我們可以使用sendMessage()發(fā)送消息,這個方法有兩個重載方法遣疯,一種類類型的參數(shù)時String類型雄可,另一種則是傳入Message對象(后面介紹)。
5缠犀、Message
- Message用于表示一個消息包(可以用調(diào)試工具看到發(fā)送包和接收包的具體內(nèi)容)数苫。
Message有兩個內(nèi)部類:
- Message.Body -- 表示消息體
- Message.Type -- 表示消息類型
type有以下幾種類類型:
- Message.Type.NORMAL -- (默認)文本消息(比如郵件)
- Message.Type.CHAT -- 典型的短消息,如QQ聊天的一行一行顯示的消息
- Message.Type.GROUP_CHAT -- 群聊消息
- Message.Type.HEADLINE -- 滾動顯示的消息
- Message.TYPE.ERROR -- 錯誤的消息
6辨液、Roster
- 表示存儲了很多RosterEntry的一個花名冊.為了易于管理文判,花名冊的項被分貝到了各個group中.
- 當建立與XMPP服務的連接后可以使用connection.getRoster()獲取Roster對象。
- 別的用戶可以使用一個訂閱請求(相當于QQ加好友)嘗試訂閱目的用戶室梅。可以使用枚舉類型Roster.SubscriptionMode的值處理這些請求:
- accept_all: 接收所有訂閱請求
- reject_all:拒絕所有訂閱請求
- manual: 手工處理訂閱請求
- 創(chuàng)建組: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狀態(tài)的packet。每個presence packet都有一個狀態(tài)思劳。用枚舉類型Presence.Type的值表示:
available -- (默認)用戶空閑狀態(tài)
unavailable -- 用戶沒空看消息
subscribe -- 請求訂閱別人迅矛,即請求加對方為好友
subscribed -- 統(tǒng)一被別人訂閱,也就是確認被對方加為好友
unsubscribe -- 他取消訂閱別人潜叛,請求刪除某好友
unsubscribed -- 拒絕被別人訂閱秽褒,即拒絕對放的添加請求
error -- 當前狀態(tài)packet有錯誤
內(nèi)嵌兩個枚舉類型:Presence.Mode和Presence.Type.
- 可以使用setStatus自定義用戶當前的狀態(tài)(像QQ一樣的)